2011-12-31 58 views
1

我正在尋找一個PHP頭()的方式來緩存圖像,但從來沒有HTML輸出的PHP內容。 現在,我使用的論文系在我的.htaccess文件:緩存圖像/ js/css從來沒有HTML內容

<filesMatch "\.(ico|gif|jpg|jpeg|png|flv|avi|mov|mp4|mpeg|mpg|mp3|pdf|doc|css|js|html|bmp|js|css)$"> 
    Header set Cache-Control "max-age=86400000" 
</filesMatch> 

而且我沒有做任何頭。

我寧願在我的PHP文件頂部發送頭這樣的,所以我想這些:

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-cache"); 
header("Cache-Control: post-check=0, pre-check=0"); 
header("Pragma: no-cache"); 

但隨着這些頭功能,圖像不會在瀏覽器的緩存,如果我關閉瀏覽器,回到網站。 我必須發送給瀏覽器來緩存圖像,但從不HTML內容?

編輯: 對不起,但我再次檢查,我覺得這些頭功能足以使瀏覽器緩存圖像,而不是html內容。

回答

0

一個選擇可能是由一個專門的PHP文件加載圖片:

header('Content-Type: image/png'); 
header('Cache-control: private'); 
$img = imagecreatefrompng("example.png"); 
imagepng($img); 
imagedestroy($img); 

,省去爲每一個單獨的PHP文件,你可以通過對URI的文件名。例如,圖像的路徑將是image.php?filename = example.png,在php腳本中使用$ _GET ['filename']。 *我不確定緩存控制:私人是否真的有必要,但是我希望將它作爲有幫助的提示。

+0

不,我講的圖像文件不是關於生成圖像的php腳本文件。 – defacto 2011-12-31 06:54:55

+0

我不知道這是否能解決你的問題,說實話。即時通訊假設你正在談論包括在PHP文件中的HTML標記的圖像,而不是直接在瀏覽器中查看圖像。 – stackuser10210 2011-12-31 07:01:43

+0

我應該已經更清楚了,我是在說這個:'echo「」;'並且希望瀏覽器緩存文件'http:// www.mysite.com/images/myImage.png'。其實我在我的問題中討論的標題功能是罰款。 – defacto 2011-12-31 07:35:14