PHP控制網(wǎng)頁過期時(shí)間的代碼
更新時(shí)間:2008年09月28日 10:40:34 作者:
有時(shí)我們需要控制主頁之類的網(wǎng)頁過期時(shí)間。但我們比如使用的是Chinacache的CDN,那要怎么樣設(shè)計(jì)才能讓他緩存我的內(nèi)容.
當(dāng)然,前提要先打開CDN中一個(gè)功能reload_into_ims on.這樣用戶發(fā)送過來no-cache也不怕了.因?yàn)檫@樣會(huì)給給no-cache轉(zhuǎn)成If-Modified-Since .所以我們寫程序主要是對(duì)If-Modified-Since控制就好了.記的,緩存系統(tǒng)架構(gòu)中計(jì)中最好是后端來控制,所以最好的方法是程序來管理過期. 呵,我只會(huì)php,就用php寫一個(gè),別的程序也是一樣。
見我下面的程序,呵呵,5分鐘過期.
<?php
$headers = apache_request_headers();
$client_time = (isset($headers['If-Modified-Since']) ? strtotime($headers['If-Modified-Since']) : 0);
$now=gmmktime();
$now_list=gmmktime()-60*5;
if ($client_time<$now and $client_time >$now_list){
header('Last-Modified: ‘.gmdate('D, d M Y H:i:s', $client_time).' GMT', true, 304);
exit(0);
}else{
header('Last-Modified: ‘.gmdate('D, d M Y H:i:s', $now).' GMT', true, 200);
}
?>
見我下面的程序,呵呵,5分鐘過期.
復(fù)制代碼 代碼如下:
<?php
$headers = apache_request_headers();
$client_time = (isset($headers['If-Modified-Since']) ? strtotime($headers['If-Modified-Since']) : 0);
$now=gmmktime();
$now_list=gmmktime()-60*5;
if ($client_time<$now and $client_time >$now_list){
header('Last-Modified: ‘.gmdate('D, d M Y H:i:s', $client_time).' GMT', true, 304);
exit(0);
}else{
header('Last-Modified: ‘.gmdate('D, d M Y H:i:s', $now).' GMT', true, 200);
}
?>
相關(guān)文章
PHP簡單實(shí)現(xiàn)二維數(shù)組賦值與遍歷功能示例
這篇文章主要介紹了PHP簡單實(shí)現(xiàn)二維數(shù)組賦值與遍歷功能,涉及php數(shù)組的簡單賦值、遍歷、運(yùn)算、讀取等操作使用技巧,需要的朋友可以參考下2017-10-10
php實(shí)現(xiàn)的后臺(tái)表格分頁功能示例
這篇文章主要介紹了php實(shí)現(xiàn)的后臺(tái)表格分頁功能,涉及php針對(duì)數(shù)據(jù)庫的連接、查詢、刪除、動(dòng)態(tài)生成表格等相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
php自定義函數(shù)call_user_func和call_user_func_array詳解
看UCenter的時(shí)候有一個(gè)函數(shù)call_user_func,百思不得其解,因?yàn)槲乙詾槭亲约憾x的函數(shù),結(jié)果到處都找不到,后來百度了一下才知道call_user_func是內(nèi)置函數(shù)2011-07-07
PHP獲取表單數(shù)據(jù)與HTML嵌入PHP腳本的實(shí)現(xiàn)
下面小編就為大家?guī)硪黄狿HP獲取表單數(shù)據(jù)與HTML嵌入PHP腳本的實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02

