国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php header()函數設置頁面Cache緩存

2024-05-04 21:47:28
字體:
來源:轉載
供稿:網友

header()函數在php的使用很大,下面我來介紹利用它實現頁面緩存的一些方法,但使用header前必須注意,在它之前不能任何輸出,包括空格。

手冊上,我們對于cache都是寫著如何設置,以便讓代碼不被cache,代碼如下:

  1. header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); // HTTP/1.1 
  2. header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
  3. header("Pragma: no-cache"); // Date in the past 

而且在設置的時候還得注意在header前不能有輸出,否則header設置無效,但都沒有寫過,如何給頁面設置Cache,雖然我們知道有一些辦法,比如 E-TAG之類的,當然也有簡單的設置,比如我們在輸出前,對內容進行md5,將它當成e-tag只要沒變化,就不會有影響.也有其他的方式,代碼如下:

  1. $seconds_to_cache = 3600;  
  2. $ts = gmdate("D, d M Y H:i:s", time() + $seconds_to_cache) . " GMT";  
  3. header("Expires: $ts"); header("Pragma: cache");  
  4. header("Cache-Control: max-age=$seconds_to_cache"); 
緩存1小時,主要是過期時間得用gmdate來設置,而不是date,這個要注意,其他都差不多。maxage要和expire能夠對得上。

對于PHP產生的動態內容,只需要在內容輸出之前輸出強制緩存的header即可,比如下面的代碼即要求瀏覽器緩存文件1個月,代碼如下:

  1. <?php 
  2.   header("Cache-Control: public"); 
  3.   header("Pragma: cache"); 
  4.   $offset = 30*60*60*24; // cache 1 month 
  5.   $ExpStr = "Expires: ".gmdate("D, d M Y H:i:s", time() + $offset)." GMT"
  6.   header($ExpStr); 
  7. ?> 

對于靜態文件,一般的服務器都支持第3級緩存狀態。要想達到第四級的緩存效果,要么像之前GZIP壓縮那樣,用PHP外包一層,然后用PHP處理。要么需要服務器端的支持,APACHE的一個模塊mod_expires支持給文件添加expires header。把下面的代碼加入你的blog目錄下的.htaccess文件,如果你的服務器安裝了mod_expires模塊,則將自動生效,圖片等強制緩存一個月,html文檔緩存10分鐘。如果該模塊沒有安裝,也不會出錯,代碼如下:

  1. <IfModule mod_expires.c> 
  2. ExpiresActive On 
  3. ExpiresByType image/gif A2592000 
  4. ExpiresByType image/jpeg A2592000 
  5. ExpiresByType image/png A2592000 
  6. ExpiresByType application/x-shockwave-flash A2592000 
  7. ExpiresByType text/css A2592000 
  8. ExpiresByType application/x-javascript A2592000 
  9. ExpiresByType text/html A600 
  10. </IfModule> 
在這里有mod_expires更詳細的文檔和教程。不過我要說明的是,mod_expires在絕大多數服務器上都沒安裝.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 楚雄市| 英吉沙县| 汝城县| 宁安市| 屏南县| 平遥县| 锦屏县| 茂名市| 岳阳市| 揭阳市| 织金县| 会同县| 小金县| 南通市| 武隆县| 卢氏县| 平湖市| 界首市| 金坛市| 新竹县| 普兰县| 大同市| 新田县| 萍乡市| 巨鹿县| 武鸣县| 岳普湖县| 池州市| 万源市| 嫩江县| 淮北市| 德惠市| 密山市| 鹤峰县| 南川市| 绥滨县| 定安县| 康乐县| 社旗县| 威海市| 常熟市|