2011-12-29 2 views
6

я сделал файл для печати из файла изображения с W и H я определяю метод GETкак кэшировать изображения, сгенерированных PHP

, но моя проблема заключается в кэшироваться фотографиями

я добавить эти заголовки файл

@header("Cache-Control: private, max-age=10800, pre-check=10800"); 
@header("Pragma: private"); 
@header("Expires: " . date(DATE_RFC822,filemtime($full_path))); 

if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) 
     && 
    (strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == filemtime($full_path))) { 
    // send the last mod time of the file back 
    header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($full_path)).' GMT',true, 304); 
    exit; 
}else 
{ 
    @header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($full_path)) . ' GMT'); 
    @header('Content-Type: image/jpeg'); 
    @imagejpeg($image); 
} 

но моя проблема некоторые фотографии кэшируются хорошо, но другие не являются, а иногда картинки внутри альбома не появляются до тех пор, если я отключить заголовок своего кэша

является м y заголовки верны? , и о кеше я должен использовать - или +, чтобы установить тайм-кеш, как его работа?

+3

Это не хорошая практика, чтобы скрыть все свои ошибки, как это. Посмотрите на настройку PHP [error_log ini directive] (http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-log), чтобы вы могли отслеживать ошибки, а не заставлять их замолчать. – cmbuckley

+0

Я использую PHP каждый день, и даже не понял, что было @ вначале! –

+0

'@' был первым, чтобы скрыть функциональные ошибки, если существует функция execute в тихом режиме без печати каких-либо ошибок. –

ответ

1

потому что они используют Htaccess с mod_expires?

Пример # 1:

# enable expirations 
ExpiresActive On 
# expire GIF images after a month in the client's cache 
ExpiresByType image/gif A2592000 
# HTML documents are good for a week from the 
# time they were changed 
ExpiresByType text/html M604800 

Read This Documentation

Пример № 2:

ExpiresActive On 
ExpiresDefault A0 
ExpiresByType image/gif A2592000 
ExpiresByType image/png A2592000 
ExpiresByType image/jpg A2592000 
ExpiresByType image/jpeg A2592000 
+0

это собирает кешировать все фотографии в галерее большим и большим? , спасибо, пожалуйста, используйте этот код, это было очень полезно –

+1

@JackKFouani: Тогда _accept_ ответ пожалуйста –

+0

Его пример с Htaccess (Apache 2+ и Mod_Expires) ... прочитайте документацию :) –

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