在php中可以通過(guò)“header()”方法來(lái)設(shè)置頁(yè)面Cache緩存,其語(yǔ)法如“header("Pragma: cache");$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s", ),GMT";”。
成都創(chuàng)新互聯(lián)公司長(zhǎng)期為上千家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為玉田企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),玉田網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
推薦:《PHP視頻教程》
php header()設(shè)置頁(yè)面Cache緩存
header()函數(shù)在php的使用很大,下面我來(lái)介紹利用它實(shí)現(xiàn)頁(yè)面緩存的一些方法,但使用header前必須注意,在它之前不能任何輸出,包括空格。
手冊(cè)上,我們對(duì)于cache都是寫(xiě)著如何設(shè)置,以便讓代碼不被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
而且在設(shè)置的時(shí)候還得注意在header前不能有輸出,否則header設(shè)置無(wú)效,但都沒(méi)有寫(xiě)過(guò),如何給頁(yè)面設(shè)置Cache,雖然我們知道有一些辦法,比如 E-TAG之類(lèi)的,當(dāng)然也有簡(jiǎn)單的設(shè)置,比如我們?cè)谳敵銮?,?duì)內(nèi)容進(jìn)行md5,將它當(dāng)成e-tag只要沒(méi)變化,就不會(huì)有影響.也有其他的方式,代碼如下:
$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小時(shí),主要是過(guò)期時(shí)間得用gmdate來(lái)設(shè)置,而不是date,這個(gè)要注意,其他都差不多。maxage要和expire能夠?qū)Φ蒙稀?/p>
對(duì)于PHP產(chǎn)生的動(dòng)態(tài)內(nèi)容,只需要在內(nèi)容輸出之前輸出強(qiáng)制緩存的header即可,比如下面的代碼即要求瀏覽器緩存文件1個(gè)月,代碼如下:
<?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); ?>
對(duì)于靜態(tài)文件,一般的服務(wù)器都支持第3級(jí)緩存狀態(tài)。要想達(dá)到第四級(jí)的緩存效果,要么像之前GZIP壓縮那樣,用PHP外包一層,然后用PHP處理。要么需要服務(wù)器端的支持,APACHE的一個(gè)模塊mod_expires支持給文件添加expires header。把下面的代碼加入你的blog目錄下的.htaccess文件,如果你的服務(wù)器安裝了mod_expires模塊,則將自動(dòng)生效,圖片等強(qiáng)制緩存一個(gè)月,html文檔緩存10分鐘。如果該模塊沒(méi)有安裝,也不會(huì)出錯(cuò),代碼如下:
<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更詳細(xì)的文檔和教程。不過(guò)我要說(shuō)明的是,mod_expires在絕大多數(shù)服務(wù)器上都沒(méi)安裝.
網(wǎng)頁(yè)題目:php如何設(shè)置緩存時(shí)間
網(wǎng)頁(yè)URL:http://www.rwnh.cn/article8/cjdoip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、響應(yīng)式網(wǎng)站、企業(yè)建站、App設(shè)計(jì)、手機(jī)網(wǎng)站建設(shè)、用戶(hù)體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)