граббер ссылок

Статус
В этой теме нельзя размещать новые ответы.

TrastMan

Постоялец
Регистрация
13 Ноя 2007
Сообщения
117
Реакции
4
Сграбить все ссылки со странички в массив типа:
Код:
хттп://ссылка1
хттп://ссылка2
...
хттп://ссылкаN
, включая сложные с дополнительными параметрами и хешами. Исключить mailto:, javascript:, и выбранные наборы символов.
Чет не выходит, все найденные примеры не рабочие...
 
если в общем виде то так(неизвестно какие кавычки)
если же известно какие кавычки или с чего начинается ссылка или нужна только та что начинается с http
тогда так например
 
Вот моя рабочая регулярка:

Внимание важный нюанс! У меня все что прогоняется через специализированные функции, а эта регулярка как раз используется в специализированной функции. С начало преобразовывается в одну строку и удаляются дубль пробелы.

Та к что если теги ссылок будут растянуты более чем на одну строчку принудительно символом переноса строки, то к регулярки необходимо прикрутить модификатор "m", на работоспособность в этом случаи не проверялось, но я думаю работать должно.
 
Можно использовать уже готовые решения, например можно воспользоваться PHP Simple HTML DOM Parser



Тут рассматривается его работа и в том числе Ваш вопрос насчет парсинга ссылок.
Работает довольно быстро.
 
Можно использовать уже готовые решения, например можно воспользоваться PHP Simple HTML DOM Parser

Тут рассматривается его работа и в том числе Ваш вопрос насчет парсинга ссылок.
Работает довольно быстро.

Зачем использовать PHP Simple бла-бла-бла, если я выше регулярку выложил для выдергивания ссылок. И которая кстати будет работать в разы быстрее.

И кстати говоря внешнюю ссылочку под хайд положи, а то неминуемо горчичник схватишь.
 
можно грабить ссылки и без привязки к a href (так как они могут быть и по-другому указаны. к примеру, просто в тексте или в ява-скрипте.
PHP:
if (preg_match_all('#(https{0,1}:\/\/[a-z\d\-\.\/]+)#i', $body, $matches))
    var_dump($matches[1]);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху