Найти все ссылки на странице

Тема в разделе "Регулярные выражения", создана пользователем uNknownMark, 26 авг 2009.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. uNknownMark

    uNknownMark

    Регистр.:
    22 сен 2007
    Сообщения:
    393
    Симпатии:
    169
    Добрый день всем. Подскажите, пожалуйста, регулярные выражения для некоторых вещей.
    Загрузили страницу с помощью CURL и надо найти все ссылки на странице и сохранить их в массив где ключ это номер ссылки по порядку (с верха до низа если идти), а значение это двухмерный массив в котором первое значение это куда ссылка ссылается, то есть значение href, а второе значение это сам анкор (то что расположено между тегами <a></a>).
    Всем заранее спасибо за помощь.
    P.S.
    И подскажите пожалуйста регулярку которая могла бы проверить есть ли у ссылки свойство rel="nofollow"
     
  2. antn

    antn Постоялец

    Регистр.:
    11 июл 2009
    Сообщения:
    104
    Симпатии:
    30
    PHP:
    preg_match_all('~<a\\s([^>]*?)\\bhref\\s*=\\s*(["\'])(.*?)\\2([^>]*?)>(.*?)</a>~s'$html$mPREG_SET_ORDER);
    foreach(
    $m as $k=>$v)
        
    printf('%d) %s => %s, nofollow = %s<br />'$khtmlspecialchars($v[5]), htmlspecialchars($v[3]), preg_match('~\\brel\\s*=\\s*(["\'])nofollow\\1~'$v[1].$v[4])? 'y':'n');
     
Статус темы:
Закрыта.