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

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

16. etoYA - 19 Февраля, 2013 - 16:06:39 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. #<p>(.*?)<div class="hentry-footer">#

Я понимаю, что там куча пробелов/табуляций, но как их убрать пока не нашел.)
17. OrmaJever - 19 Февраля, 2013 - 16:09:03 - перейти к сообщению
а у меня такой вариант.
PHP:
скопировать код в буфер обмена
  1. $f = file_get_contents('http://facte.ru/pilot-samolyota-i-vtoroj-pilot-pered-rejsom-obyazany-est-raznye-blyuda.html');
  2. preg_match('#</a><br />(.+?)<div class="hentry-footer">#ism', $f, $c);
  3. echo strip_tags(trim($c[1]));

если нужно оставить тег <p> то можно убрать strip_tags
18. etoYA - 19 Февраля, 2013 - 16:12:59 - перейти к сообщению
OrmaJever, о, самое то, а что значит ism?
19. esterio - 19 Февраля, 2013 - 16:16:21 - перейти к сообщению
etoYA
Модификаторы
Цитата:
i (PCRE_CASELESS)
Если этот модификатор используется, символы в шаблоне соответствуют символам как верхнего, так и нижнего регистра.
m (PCRE_MULTILINE)
По умолчанию PCRE обрабатывает данные как однострочную символьную строку (даже если она содержит несколько разделителей строк). Метасимвол начала строки '^' соответствует только началу обрабатываемого текста, в то время как метасимвол "конец строки" '$' соответствует концу текста, либо позиции перед завершающим текст переводом строки (в случае, если модификатор D не установлен). В Perl ситуация полностью аналогична. Если этот модификатор используется, метасимволы "начало строки" и "конец строки" также соответствуют позициям перед произвольным символом перевода и строки и, соответственно, после, как и в самом начале и в самом конце строки. Это соответствует Perl-модификатору /m. В случае, если обрабатываемый текст не содержит символов перевода строки, либо шаблон не содержит метасимволов '^' или '$', данный модификатор не имеет никакого эффекта.
s (PCRE_DOTALL)
Если данный модификатор используется, метасимвол "точка" в шаблоне соответствует всем символам, включая перевод строк. Без него - всем, за исключением переводов строк. Этот модификатор эквивалентен записи /s в Perl. Класс символов, построенный на отрицании, например [^a], всегда соответствует переводу строки, независимо от наличия этого модификатора.
20. etoYA - 19 Февраля, 2013 - 16:26:10 - перейти к сообщению
Всем спасибо, все получилось) Вроде разобрался, дальше буду разбиратся без помощи).

 

Powered by ExBB FM 1.0 RC1