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
Форумы портала PHP.SU :: Версия для печати :: Регулярка
Форумы портала PHP.SU » » Вопросы новичков » Регулярка

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

1. event - 18 Апреля, 2014 - 15:06:28 - перейти к сообщению
Привет.

Есть такой кусок:

CODE (html):
скопировать код в буфер обмена
  1.                 <div class="entry-content post_content">
  2.                 <p>ТЕКСТ, который нужно спарсить</p>
  3.                         </div><!-- .entry-content -->


надо из этого куса спарсить текст, пробую вот так:
PHP:
скопировать код в буфер обмена
  1. preg_match('/<div class=\"entry-content post_content\">(.*)<\/div>/s', $page, $test);


Парсит, но к тому еще парсит другой мусор, который не нужен. Как решить? Закатив глазки
2. IllusionMH - 18 Апреля, 2014 - 15:15:28 - перейти к сообщению
event, если нужен только текст, то попробуйте еще strip_tags.
А еще и жадность нужно убрать у регулярки, а то будет выбирать от дива с классои и до последнего закрывающегося. либо .*? использовать в теле вместо .*, либо ключ U
3. event - 18 Апреля, 2014 - 15:17:47 - перейти к сообщению
strip_tags канает, все ок.

Но есть одно, но... Мне все таки нужен preg_match_ALL, а не preg_match, а потом все это в цикл кинуть и потом работать)
4. Мелкий - 18 Апреля, 2014 - 15:17:53 - перейти к сообщению
Жадный поиск как он есть.
Если там только текст, без html, то лучше будет так:
CODE (regexp):
скопировать код в буфер обмена
  1. /<div class=\"entry-content post_content\">\s*<p[^>]*>([^<]++)</p>\s*<\/div>/s
5. IllusionMH - 18 Апреля, 2014 - 15:36:06 - перейти к сообщению
event, сначала делаете preg_match_all и получите все содержимое всех таких дивов(если уберете жадность). Потом в цикле пробегаете по массиву(или через array_map) и удаляете лишнее.
В итоге в конце будет только текст.

Либо озвучьте что еще нужно, может есть вариант удобней.

 

Powered by ExBB FM 1.0 RC1