Регулярные выражения PHP

Chalk
На сайте с 05.11.2009
Offline
48
703

Столкнулся вот опять с регулярными выражениями и моих познаний не хватает. Информации тоже не получилось найти. Может тут помогут :)

В общем нужно настроить граббер. Нужно регулярное выражение, которое смогло бы определять текст внутри тегов <p> в определенном куске текста. Например, нужный текст на странице находится между метками <div class="content"> и <div class="footer">

"/<p>(.*)<\/p>/" - это будет выделять инфу со всех тегов <p> на странице.

Что нужно добавить в регулярное выражение, чтобы поиск осуществлялся между указанными выше метками?

Надеюсь доступно объяснил :) Спасибо

edogs software
На сайте с 15.12.2005
Offline
775
#1

Если Вам нужен только один "параграф", то

~<div class="content">.*?<p>(.*?)</p>.*?<div class="footer">~si

Если несколько, то как ни странно самое простое побить текст изначально, по типу

list(,$text)=explode('<div class="content">',$text);

list($text,)=explode('<div class="footer">',$text);

и потом в результате искать уже все вхождения <p> приведённым Вами регом.

И наконец

"/<p>(.*)<\/p>/" - это будет выделять инфу со всех тегов <p> на странице.

Более правильно ~<p>(.*?)</p>~

Во первых .*? - с ограничителем жадности

Во вторых ~ как ограничитель позволит Вам не заниматься маразмом с прослэшиванием слэшей

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
Chalk
На сайте с 05.11.2009
Offline
48
#2

Спасибо, но нужно именно одним регулярным выражением выделить сразу все параграфы. Это вообще реально сделать? Просто граббер сделан под несколько сайтов и его переписывать не хочется..

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий