2010-03-16 3 views
3

Я хочу кэшировать изображения моей галереи. Создание изображений на каждой загрузке страниц с использованием GD использует большую память, поэтому я планирую создать образ кэша для изображений, сгенерированных php-скриптом, выполненным с помощью GD. Что будет лучше всего создавать кеш?как кэширование реализовано с использованием PHP GD

ответ

0

Сохраните его на диск. Web-сервер позаботится о кешировании.

+0

я обычно нашел тайник в хэш-форм. Вебсервер также заботится о хэшировании? Можете ли вы объяснить или привести пример, как веб-сервер позаботится о кешировании. – christian

+0

По своей цели. Он был разработан для кэширования, поскольку он поддерживает кеширование HTTP-сервера и HTTP-протокола. Ему удается вычислить хэш. –

1

Считаете ли вы использование phpThumb? Он имеет множество возможностей для генерации изображений и кеширования.

5

использовать что-то вроде

$mime_type = "image/png"; 
$extension = ".png"; 
$cache_folder = "cache"; 

$hash = md5($unique . $things . $for . $each . $image); 
$cache_filename = $cache_folder . '/' . $hash . $extension; 

//Is already it cached? 
if($file = @fopen($cache_filename,'rb')) { 
    header('Content-type: ' . $mime_type); 
    while(!feof($file)) { print(($buffer = fread($file,4096))); } 
    fclose($file); 
    exit; 
} else { 
//Generage a new image and save it 
    imagepng($image,$cache_filename); //Saves it to the given folder 

//Send image 
    header('Content-type: ' . $mime_type); 
    imagepng($image); 
} 
1

Я не думаю, что вам нужно сделать какие-либо итерации при чтении файла из кэша, простой вызов ReadFile() является достаточным. Например:

if (file_exists($image_path)) { 
    // send the cached image to the output buffer (browser) 
    readfile($image_path); 
}else{ 
    // create a new image using GD functions 
... 

Полный сценарий здесь:

http://www.alphadevx.com/a/57-Implementing-an-Image-Cache-for-PHP-GD

Смежные вопросы