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 » PHP » Регулярные выражения » выборка содержимого с доски объявлений

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

1. 112345688 - 22 Мая, 2010 - 21:42:23 - перейти к сообщению
Есть html страница с объявлениями такого типа "...ПРОДАМ - нужная информация -ДАТА...", таких 30 шт. на страницу. Надо нужной информацией заполнить массив. Пишу preg_match_all('/продам.*дата/i', $text, $m) в $m выдает все 30 объявлений никак не разделенных.
Может в этой $m они лежат по одному, но я не знаю, как до них добраться?
А может нет, что делать?
2. Мелкий - 22 Мая, 2010 - 22:03:23 - перейти к сообщению
'/продам.*?дата/i'
используйте нежадный поиск.

а точно узнать, как они лежат в переменной поможет var_dump
3. 112345688 - 22 Мая, 2010 - 22:20:14 - перейти к сообщению
страниц мало, жадность к ресурсам не критична, если это об этом. var_dump показывает наличие одного массива в котором все объявления, то есть вырезало с первого ПРОДАМ до последнего ДАТА, а как их отчикать поштучно, ПРОДАМ...ДАТА и т.д?
4. Мелкий - 22 Мая, 2010 - 22:41:39 - перейти к сообщению
112345688 пишет:
страниц мало, жадность к ресурсам не критична, если это об этом.

Нет, не об этом. Я про регулярку говорю, обратите внимание на символ "?", уменьшает жадность регулярки.
Жадный поиск хватает всё, что между первым встретившимся "продам" и последним найденным "дата". Нежадный же поиск хватает только ближайшие совпадения.
5. 112345688 - 22 Мая, 2010 - 22:50:35 - перейти к сообщению
Спасибо, идею понял, не скажете ли куда ставить '?'
6. Мелкий - 22 Мая, 2010 - 23:31:07 - перейти к сообщению
Ну как бы уже...
Мелкий пишет:
'/продам.*?дата/i'

Или модификатором можно:
'/продам.*дата/iU'
7. 112345688 - 23 Мая, 2010 - 09:51:01 - перейти к сообщению
Спасибо за науку, все работает.
8. JustUserR - 23 Мая, 2010 - 13:50:56 - перейти к сообщению
112345688 Кстати для глобального поиска в регулярном выражении можете использовать модификатор /g заместо соответствющей функции с постфиксом _all - это поможет сделать регулярное выражение совместимым с Perl и JS

 

Powered by ExBB FM 1.0 RC1