Иногда мы очень хотим оптимизировать тот или иной сайт / тот или иной скрипт, сократив запросы к базе данных или сервису, насколько это возможно. Как это реализовать? На помощь приходит кэширование данных.
$file=$_SERVER['DOCUMENT_ROOT']."/_cache/one.txt";
if(!is_file($file)){
//если файл не существует, выведем информацию БЕЗ кэширования!
echo 'Какая-то информация';
//и создадим файл кэширования
$f=fopen($file,'w');
flock ($f,2);
//запишем нужную нам информацию в кэшируемый файл
fputs($f,'Какая-то информация');
fclose($f);
}else{
$d=@file($file);
$fs=trim($d[1]);
//Если файл не обновлялся 3600 секунд (1 час) или файл пуст,
//то обновляем его
if (filemtime($file)<time()-600 || empty($fs)) {
$d=@file($file);
$fs=trim($d[1]);
// Сохраняем новую версю в кэше
$f=fopen($file,'w');
flock ($f,2);
fputs($f,'Какая-то информация');
fclose($f);
}
//Можно вывести данные из файла:
echo file_get_contents($file);
}