php

2011-12-29 5 views
6

द्वारा उत्पन्न छवि को कैश करने के मैं कैसे बाहर के साथ डब्ल्यू और एच मैं विधि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); 
} 

लेकिन मेरी समस्या कुछ तस्वीरें ठीक कैश की गई हैं, लेकिन दूसरों को नहीं कर रहे हैं, और कुछ समय एल्बम अंदर चित्र नहीं अगर मैं को निष्क्रिय कैश हेडर तक दिखाई है

मीटर है वाई हेडर सही हैं? , और कैश के बारे में मुझे उपयोग करना है - या + समय कैश सेट करने के लिए कैसे अपना काम?

+3

ऐसा अपने सभी त्रुटियों को छिपाने के लिए अच्छा अभ्यास नहीं है। PHP के [error_log ini निर्देश] (http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-log) को सेट करने पर एक नज़र डालें, ताकि आप उन्हें चुप करने के बजाय त्रुटियों को ट्रैक कर सकें। – cmbuckley

+0

मैं हर रोज PHP का उपयोग करता हूं, और यह भी नहीं पहचानता कि @ पहले क्या था! –

+0

'@' पहली बार फंक्शन त्रुटियों को छिपाने के लिए था अगर किसी भी त्रुटि को मुद्रित किए बिना मूक मोड में निष्पादित फ़ंक्शन की तरह मौजूद है –

उत्तर

1

क्योंकि वे mod_expires के साथ Htaccess का उपयोग करते हैं?

उदाहरण # 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

@ जैककेफौनी: फिर _accept_ उत्तर कृपया –

+0

एचटीएसीएएस (अपाचे 2+ और मॉड_एक्सपायर) के साथ इसका एक उदाहरण है ... दस्तावेज़ पढ़ें :) –

संबंधित मुद्दे