在php中可以透過「header()」方法來設定頁面Cache緩存,其語法如「header("Pragma: cache");$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s", ),GMT";」。
#推薦:《PHP影片教學》
php header()設定頁面Cache快取
header()函數在php的使用很大,下面我來介紹利用它實現頁面快取的一些方法,但使用header前必須注意,在它之前不能任何輸出,包括空格。
手冊上,我們對於cache都是寫著如何設定,以便讓程式碼不被cache,程式碼如下:
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past header("Pragma: no-cache"); // Date in the past
而且在設定的時候還得注意在header前不能有輸出,否則header設置無效,但都沒有寫過,如何給頁面設置Cache,雖然我們知道有一些辦法,比如E-TAG之類的,當然也有簡單的設置,例如我們在輸出前,對內容進行md5,將它當成e-tag只要沒變化,就不會有影響.也有其他的方式,代碼如下:
$seconds_to_cache = 3600; $ts = gmdate("D, d M Y H:i:s", time() + $seconds_to_cache) . " GMT"; header("Expires: $ts"); header("Pragma: cache"); header("Cache-Control: max-age=$seconds_to_cache");
緩存1小時,主要是過期時間得用gmdate來設置,而不是date,這個要注意,其他都差不多。maxage要和expire能夠對得上。
對於PHP產生的動態內容,只需要在內容輸出之前輸出強制緩存的header即可,例如下面的程式碼即要求瀏覽器快取文件1個月,程式碼如下:
<?php header("Cache-Control: public"); header("Pragma: cache"); $offset = 30*60*60*24; // cache 1 month $ExpStr = "Expires: ".gmdate("D, d M Y H:i:s", time() + $offset)." GMT"; header($ExpStr); ?>
對於靜態文件,一般的伺服器都支援第3級快取狀態。要想達到第四級的快取效果,要么像之前GZIP壓縮那樣,用PHP外包一層,然後用PHP處理。要么需要伺服器端的支持,APACHE的一個模組mod_expires支持給文件添加expires header。把下面的程式碼加入你的blog目錄下的.htaccess文件,如果你的伺服器安裝了mod_expires模組,則將自動生效,圖片等強制緩存一個月,html文檔緩存10分鐘。如果該模組沒有安裝,也不會出錯,代碼如下:
<IfModule mod_expires.c> ExpiresActive On ExpiresByType image/gif A2592000 ExpiresByType image/jpeg A2592000 ExpiresByType image/png A2592000 ExpiresByType application/x-shockwave-flash A2592000 ExpiresByType text/css A2592000 ExpiresByType application/x-javascript A2592000 ExpiresByType text/html A600 </IfModule>
這裡有mod_expires更詳細的文件和教學。不過我要說明的是,mod_expires在絕大多數伺服器上都沒安裝.
以上是php如何設定快取時間的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器