@Ressive

Как можно улучшить данное кэширование в php?

Как можно улучшить (оптимизировать) данное кэширование в 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();
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Вариант "выбросить целиком" не подойдет?

?true:false и http://www.php.su - написано новичком, и возможно лет *надцать назад.

ob_start('ob_gzhandler'); // 1. Начать gzip сжатие - почему оно здесь: непонятно.

Похоже на какой-то самодельный кеширующий прокси, но не совсем ясно зачем это все вообще.
Ответ написан
Комментировать
wagoodoogoo
@wagoodoogoo
prestashop, webix, phalcon, vue, slim, craft cms
Для нужд кеширования в повседневных проектах есть замечательная phpFastCache библиотека.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 15:51
3000 руб./за проект
25 апр. 2024, в 15:31
70000 руб./за проект
25 апр. 2024, в 15:26
15000 руб./за проект