Помогите прикрутить кеш к парсеру погоды

Статус
В этой теме нельзя размещать новые ответы.

AlexeyL

Писатель
Регистрация
18 Авг 2009
Сообщения
21
Реакции
1
Помогите прикрутить кеш к парсеру погоды...
Парсер сделан под дле...
PHP:
<?php
$text = file_get_contents( 'http://сайт' );
preg_match( '/<td class="n1td v10ccc">(.*?)<\/td>/is' , $text , $date_tomsk );

echo $date_tomsk[1];

preg_match( '/<span class="v28fc0b">(.*?)<\/span>/is' , $text , $temperature );

echo " | Температура<font color=red><b> ";
echo $temperature[1];
echo "</b></font>";

preg_match( '/<tr><td class="ntd7"><span class="v10cccb">(.*?)<\/tr>/is' , $text , $davlenie );

echo "°c | ";
echo $davlenie[1];



?>

Вот скрипт который парсит все что нужно, как бы прикрутить к нему кеш?
Можно отдельный или от самой ДЛЕ

А то я только начал изучать php и нигде не моуг понять как прикрутить нормально кеш..
 
например так, с кэшем во временной директории и настраиваемым временем обновления

PHP:
$l_time = 2*60*60; // период обновления 2 часа
$tmp_file = rtrim(sys_get_temp_dir(),"/\\").'/weather_cache.txt'; // tmp файл

if(is_file($tmp_file) AND filemtime($tmp_file) > (time()-$l_time) )
$w_page = file_get_contents($tmp_file);
else {
ob_start(); // буферизация

$text = file_get_contents( 'http://site.com/' );
preg_match( '/<td class="n1td v10ccc">(.*?)<\/td>/is' , $text , $date_tomsk );
echo $date_tomsk[1];
preg_match( '/<span class="v28fc0b">(.*?)<\/span>/is' , $text , $temperature );
echo " | Температура<font color=red><b> ";
echo $temperature[1];
echo "</b></font>";
preg_match( '/<tr><td class="ntd7"><span class="v10cccb">(.*?)<\/tr>/is' , $text , $davlenie );
echo "°c | ";
echo $davlenie[1];

$w_page=ob_get_contents(); ob_end_clean();
file_put_contents($tmp_file,$w_page);	
}

echo $w_page; // вывод
 
спасибо, а вот вопрос, файл будет сохраняться в туже папку где и файл?
 
нет
sys_get_temp_dir - возвращает путь к временной папке системы
 
а можно это сделать чтобы это было в той папке, в которой я захочу?
 
да, можно использовать относительный или абсолютный путь, только в таком случае желательно выставить на файл права 777

PHP:
$tmp_file = 'weather_cache.txt';
// или
$tmp_file = '/home/user_name/public_html/site.com/weather_cache.txt';
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху