<?php
/*
* Кэширование данных
* автор: Nc_Soft
* 15.04.08
*/
/*
Предположим, у нас есть некий скрипт, который собирает инфу с другого сайта,
(тоесть граббер страницы например http://example.com).
Пусть инфа на том гипотетическом сайте меняется например раз в час,
в данной ситуации довольно расточительно коннектиться к этому сайту при каждом запросе,
гораздо логичнее кэшировать данные, а чтобы они занимали меньше места, то и сжимать их.
И для этого совсем необязательно использовать класс Pclzip, вот предложу такой вариант:
*/
//урл
$url='http://example.com';
//путь к файлу-кэшу
$cache='./cache.gz';
//если нет файла-кэша или он устарел (1 час и более), то коннектимся
if (!file_exists($cache) || time() - filemtime($cache) > 3600 )
{
//получение инфы
$info=file_get_contents($url);
//кэширование инфы с максимальным сжатием (level 9)
$zp = gzopen($cache, 'w9');
gzwrite($zp, $info);
gzclose($zp);
}
else
{
//берем $info из кэша, предварительно распаковав
$info=gzfile($cache);
$info=implode($info);
}
//выводим данные
echo $info;
/*
Таким образом, значительно сокращается число запросов к сайту-источнику, а если эта информация текстовая,
то сжатие позволяет уменьшить ее объем до 10раз, тем самым хранение такого кэша не займет много места.
*/
?>