Кэширование данных

<?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раз, тем самым хранение такого кэша не займет много места.
*/

?>