Задать вопрос

Как кешировать динамические изображеия с помощью PHP?

Добрый день.

Для генерации изображений (статус-бар, подпись) используются данные из MySQL и локально расположенные шаблоны изображений и используемые шрифты.

Процесс генерации изображения в этом фрагменте кода:

$im     = imagecreatefrompng("./bg_2.png");
$over   = imagecreatefrompng("./over.png");
$flag   = imagecreatefrompng("/dist/img/flags/".$country.".png");
$status = imagecreatefrompng("./".$online.".png");

$orange = imagecolorallocate($im, 205,66,43);
$white  = imagecolorallocate($im, 255,255,255);
$green  = imagecolorallocate($im, 0,204,51);
$red    = imagecolorallocate($im, 255,61,61);
$blue   = imagecolorallocate($im, 51,102,255);
$navy   = imagecolorallocate($im, 75,100,111);

imagecopy($im, $over, 0, 0, 0, 0, 468, 60);
imagecopy($im, $flag, 10, 12, 0, 0, 16, 11);
imagecopy($im, $status, 350, 0, 0, 0, 120, 60);

imagettftext($im, 16, 0, 35, 25, $white, $font, $string);
imagettftext($im, 10, 0, 10, 50, $white, $font2, $string5);

header("Content-type: image/png");

imagepng($im);
imagedestroy($im);
imagedestroy($over);
imagedestroy($flag);


Суть вопроса, как правильно кешировать полученное изображение (Memcached или альтернативы), учитывая что интервал обновления данных в БД - 5 минут?
  • Вопрос задан
  • 504 просмотра
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
opium
@opium
Просто люблю качественно работать
Просто подождите на диск все само закешируется это же статика
Ответ написан
sHinE
@sHinE
веб-разработчик, php/js/mysql и сопутствующее
У вас входных параметров 4 по сути - страна, статус (онлайн/оффлайн) и две строки.
Строки у вас скорее всего меняются редко, страна вообще не меняется, а статус - достаточно часто.
При изменении строк генерил бы две картинки - одна оффлайн, другая онлайн и хранил бы отдельно.
Раз в 5 минут - смотрел в БД и копировал картинку с нужным статусом в нужное место (ну или переименовывал - но тут надо как-то запоминать предыдущее имя/место файла).
Ответ написан
2ord
@2ord
В качестве предложения, можно выдавать
HTTP заголовок Expires, указывающий когда истекает 5 минут. Тогда веб клиенты смогут узнать когда обновлять картинку.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽