Как можно улучшить (оптимизировать) данное кэширование в php?
//settings
$cache_ext = '.html'; // Устанавливаем расширение файла
$cache_time = 30000000; // Устанавливаем время жизни кэша в секундах
$cache_folder = $_SERVER['DOCUMENT_ROOT'] . '/chart/cache/'; // папка хранения кэшированых файлов
$ignore_pages = array('', ''); // массив данных, с двумя переменными
$dynamic_url = 'https://'.$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . $_SERVER['QUERY_STRING']; // Сохраняем динамическую страницу для браузера пользователей
$cache_file = $cache_folder.md5($dynamic_url).$cache_ext; // Сохраняем страницу в папку, с обробкой названия в MD5 - ссылка http://www.php.su/md5()
$ignore = (in_array($dynamic_url,$ignore_pages))?true:false; // 1. В массиве $ignore_pages ищется элемент со значением, который хранится в переменной $dynamic_url; - Если $dynamic_url найден в массиве $ignore_pages то true иначе false
if (!$ignore && file_exists($cache_file) && time() - $cache_time < filemtime($cache_file)) { // Если присутствует динамическая ссылка и ее кеш на сервере и время меньше времени срока жизни кэша то:
ob_start('ob_gzhandler'); // 1. Начать gzip сжатие
readfile($cache_file); // Вывести файл в буфер
echo '<!-- cached page - '.date('l jS \of F Y h:i:s A', filemtime($cache_file)).', Page : '.$dynamic_url.' -->'; // добавить строку с информацией о времени кэширования
ob_end_flush(); // Отправить содержимое буфера пользователю
exit(); // закончить условие
}
// 1. Начать gzip сжатие.
ob_start('ob_gzhandler');
if (!is_dir($cache_folder)) {
mkdir($cache_folder);
}
if(!$ignore){
$fp = fopen($cache_file, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
}
ob_end_flush();