Иногда мы очень хотим оптимизировать тот или иной сайт / тот или иной скрипт, сократив запросы к базе данных или сервису, насколько это возможно. Как это реализовать? На помощь приходит кэширование данных.

$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);
}
PHP кэширование данных в файл