1К13!
С нами с 07.05.04
Сообщения: 7721
Рейтинг: 2428
|
Добавлено: 14/11/06 в 16:04 |
Есть вот такой контент:
<14 Nov 2006 | 12:38am GMT>
новость за сегодня
</14 Nov 2006 | 12:38am GMT>
<13 Nov 2006 | 11:55pm GMT>
новость за вчера
</13 Nov 2006 | 11:55pm GMT>
</div>
И нужно мне, чтобы все вчерашние новости вырезались нафик.
-----------------------------
Вот кусок кода, которым я пытаюсь это сделать:
//В $Page сую все новости
$datematch = gmdate("d M Y", time() - 86400);
// $datematch присваиваю вчерашнюю дату
echo preg_replace("/<$datematch.+(\/div>?)/U", "", $Page);
---------------------------
получаю на выходе:
<14 Nov="" 2006="">
новость за сегодня
</14 Nov="" 2006="">
<13 Nov="" 2006="">
новость за вчера
</13 Nov="" 2006="">
</div>
Причём по крайней мере на локалке вот такой скрипт отрабатывает на ура:
<?php
$datematch = gmdate("d M Y", time() - 86400);
echo preg_replace("/<$datematch.+(\/$datematch.+GMT>?)/U", "",
"<14 Nov 2006 | 8:01am GMT>новость за сегодня</14 Nov 2006 | 8:01am GMT>
<13 Nov 2006 | 8:01am GMT>новость за вчера</13 Nov 2006 | 8:01am GMT>");
?>
Дарагие знатоки, в чём я запарил?
|
|
|
|
С нами с 07.01.04
Сообщения: 2868
Рейтинг: 1536
|
Добавлено: 14/11/06 в 16:26 |
У тебя точка переход на новую строку не берет.
Подставь модификатор s в регулярку.
|
|
|
|
1К13!
С нами с 07.05.04
Сообщения: 7721
Рейтинг: 2428
|
Добавлено: 14/11/06 в 17:14 |
echo preg_replace("/<$datematch.+(\/div>?)/sU", "", $Page);
не помогает 8(
|
|
|
|
БешаныйСуслег
С нами с 16.06.04
Сообщения: 1322
Рейтинг: 1338
|
Добавлено: 14/11/06 в 19:03 |
benzole писал: |
Дарагие знатоки, в чём я запарил? |
Код: |
<?php
$datematch = gmdate("d M", time() );
$str = "<14 Nov 2006 | 8:01am GMT>новость за сегодня</14 Nov 2006 | 8:01am GMT><13 Nov 2006 | 8:01am GMT>новость за вчера</13 Nov 2006 | 8:01am GMT>";
preg_match('/<'.$datematch.'[^>]+>.*?<\/'.$datematch.'[^>]+>/',
$str, $matches ) ;
print( $matches[0] );
?>
|
|
|
|
|
1К13!
С нами с 07.05.04
Сообщения: 7721
Рейтинг: 2428
|
Добавлено: 14/11/06 в 22:44 |
Yeeeah! 8)
ghood, большущщщее спасибо )
Вот так вот сделал, чтобы все сегодняшние новости парсило:
preg_match('/<'.$datematch.'[^>]+>.*?<\/'.$datematch.'[^>]+>/smU',
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |