@dmitrypix

Как кешировать Json?

Подскажите что не правильно?
$cached = fopen($cache_file, 'w');
fwrite($cached, ob_get_contents());
fclose($cached);
ob_end_flush();

$file = 'site.com/json/liveu.json';

$cache_path = "/wp-content/tmp"; // папка с кэш-файлами на сервере
$cache_file = sprintf($file, $cache_path);
$cache_ttl = 900; // время жизни кэша в секундах
$html = ''; // HTML код для вставки на страницу

if( file_exists( $cache_file) && (time() - filemtime($cache_file)) < $cache_ttl) {
// берём кэшированные данные
$html = file_get_contents($file);
file_put_contents($cache_file, $html);
} 

echo $html;
  • Вопрос задан
  • 321 просмотр
Пригласить эксперта
Ответы на вопрос 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Всё очень-очень плохо.
  • Что происходит в самом начале?
  • Зачем вы насилуете sprintf? Почитайте документацию этой функции.
  • У вас полная чушь в проверке валидности кеша:
    если (файл_с_кешем_существует И кеш_не_протух)
        получить_данные_с_сайта
        записать_данные_в_кеш


Обратите внимание, что чтения из кеша у вас нигде нет (в начале только какой-то мусор с ним связанный).

Опишите свою задачу простыми словами по шагам, а потом реализуйте последовательно каждый шаг. Сейчас вы не понимаете, что происходит в коде, поэтому он у вас может заработать только случайно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы