|
|
|||||
регулярные выражения
Здравствуйте !
начал изучать регулярные выражения в PHP и столкнулся с такой вот проблеммой: Допустим есть Html страница. В ней находятся ссылки: [1]<a href="Htxt1" title="Ttxt1" target="TGtxt1" style=STtxt1> [2]<a title="Ttxt1" href="Htxt1" target="TGtxt1" style=STtxt1> [3]<a href="Htxt1" title="Ttxt1" style=STtxt1 target="TGtxt1> [4]<a target="TGtxt1" href="Htxt1" title="Ttxt1"" style=STtxt1> [5]<a href="Htxt1"> и есть вот такое рег. выражение "[<a +target=([^>]+) +href=([^>]+) +title=([^>]+) +style=([^>]+)>]", но оно подойдет только для 4-го варианта, как должно выглядеть выражение, которое позволит вывести информацию о всех выше описанных ссылках ?? конечно есть вариант выбрать сначала строки такого вида <a ...>, а затем по каждому атрибуту : target=... href=... title=... Но получается, что функция вызывается уже 4 раза Заранее Огромное спасибо !!!
__________________
Увы! Лето пролетело, как один день: берег лесного озера, тихая музыка, красивая женщина... Жаль, что в этот день я был на работе! Все хорошо но может быть лучше |
|
|||||
Регистрация: Jun 2001
Сообщений: 159
|
Если надо только "выдернуть" ссылку то имхо этот паттерн сойдет:
<a.+?href="(.*?)".*?> в backreference будет ссылка. Если надо менять ссылки то тогда сойдет вот этот скрипт: $result = preg_replace('/<a(.+?)href="(.*?)"(.*?)>/', '<a\\1href="some text to replace"\\3>', $subject); //тоисть тут паттерн будет: <a(.+?)href="(.*?)"(.*?)> Regexbuddy мне очень помогает в работе, просто великолепная прога. |
|
|||||
Регистрация: Jun 2000
Адрес: $_SERVER['REMOTE_ADDR']
Сообщений: 854
|
Хорошо, если все урлы в ковычках... Правда, конечная задача в чем, убрать все аттрибуты кроме href?
__________________
X |
|
|||||
Регистрация: Jun 2001
Сообщений: 159
|
Ковычки можно обойти так: "?, тоисть получится:
<a.+?href="?(.*?)"?.*?> или даже так:["']? <a.+?href=["']?(.*?)['"]?.*?> Последний раз редактировалось mirian; 07.07.2005 в 16:21. |
|
|||||
Цитата:
и еще нашел в инете одно выраженице и переделал под себя "'<a +(.*?) *?>'i "/href[^=]*=[ \n\r\t]*([^ >\r\n\t#]+)/i" выдает линки с ковычками конечно, можно сделать и без них, ну я их потом обрезаю обработчиком строк.....
__________________
Увы! Лето пролетело, как один день: берег лесного озера, тихая музыка, красивая женщина... Жаль, что в этот день я был на работе! Все хорошо но может быть лучше |
|
|||||
Регистрация: Jun 2001
Сообщений: 159
|
|
Часовой пояс GMT +4, время: 21:25. |
|
« Предыдущая тема | Следующая тема » |
|
|