Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Парсер ссылок

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Парсер ссылок
Jmunb
Отправлено: 24 Октября, 2010 - 17:04:28
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Недавно работаю с регулярными выражениями
Требуется написать регулярку которая будет вытаскивать со страницы все ссылки из тега <a>
и запись между >ТЕКСТ </a>

То есть если есть ссылки типа, <a href = "www.mpalkor.ru"> ТЕКСТ </a> и <a href = "www.mpalkor.ru/projects"> <img src="d/img/dsfdsf.jpg"></a>

То на выходе я должен получить: array [0]->[0] www[dot]mpalkor[dot]ru [1]www[dot]mpalkor[dot]ru/projects array[1]->[0] ТЕКСТ [1] d/img/dsfdsf.jpg

собственно дописал найденную в интернете регулярку: '|<a(.*?)href[\"\'\s]{0,}=[\"\'\s]{0,}(.*?)[\"\'\s]{1}(.*?)>(.*?)</a[\s]{0,}>|is'

она дополнительно вытаскивает ссылку целиком все до href и после.

Но на некоторых сайтах например на приведенном мной mpalkor.ru работает некоректно.
Собственно помогите написать регулярку которая достает саму ссылку и титлу или img!
 
 Top
JustUserR
Отправлено: 25 Октября, 2010 - 17:40:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Jmunb Для реализации выбора всех описанных на HTML-гиперссылок и проведения разбора их содержимого на требуемые компоненты можно использовать следующую схему - первоначально вы применяете простое регулярное выражение поиска всех вхождений аттрибутов которые потенциально могут содержать в себе возможнные URL-адреса - после чего осуществляете применение функции parse_url в каждому из вхождений что обеспечивает одновременную провреку и разбиение на компоненты


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
OrmaJever
Отправлено: 25 Октября, 2010 - 18:12:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Jmunb пишет:
собственно дописал найденную в интернете регулярку: '|<a(.*?)href[\"\'\s]{0,}=[\"\'\s]{0,}(.*?)[\"\'\s]{1}(.*?)>(.*?)</a[\s]{0,}>|is'


Всё конешно зависит от конкретного случия но я думаю можно сильно не напрягатся.

CODE (htmlphp):
скопировать код в буфер обмена
  1. '#<a href="(.+?)">(.+?)</a>#i'

Закатив глазки


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
JustUserR
Отправлено: 26 Октября, 2010 - 11:03:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




OrmaJever пишет:
Но я думаю можно сильно не напрягатся.
В случае совершения обработки оригинального текста достаточного объекта показатель быстродейтсвия может иметь заметное значение - таким образом использование внутренних функций с большей эффективностью работы является более предпочтительным решением


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB