php靜態(tài)文件返回304技巧分享
有時(shí)一些靜態(tài)文件(如圖片)會(huì)由php輸出,會(huì)發(fā)現(xiàn)請(qǐng)求都是200,靜態(tài)文件每次都去服務(wù)器上請(qǐng)求太浪費(fèi)資源了,這時(shí)如何讓瀏覽器緩存圖片呢?就需要我們?cè)趐hp中輸出304了。
我們可以利用php中的 HTTP_IF_MODIFIED_SINCE 結(jié)合etag來(lái)干這事。Etag沒(méi)有明確規(guī)定的格式,我們可以用文件修改時(shí)間的md5值,代碼如下:
private function _addEtag($file) {
$last_modified_time = filemtime($file);
$etag = md5_file($file);
// always send headers
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT");
header("Etag: $etag");
// exit if not modified
if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $last_modified_time ||
@trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {
header("HTTP/1.1 304 Not Modified");
exit;
}
}
在代碼中可以在靜態(tài)文件(如圖片)輸出之前調(diào)用即可。
- PHP的十個(gè)高級(jí)技巧(上中下)
- PHP編程之高級(jí)技巧——利用Mysql函數(shù)
- PHP Mysql編程之高級(jí)技巧
- 10條PHP高級(jí)技巧[修正版]
- PHP小技巧之函數(shù)重載
- php定界符<<<使用技巧和實(shí)例
- PHP中文編碼小技巧
- php導(dǎo)入大量數(shù)據(jù)到mysql性能優(yōu)化技巧
- PHP網(wǎng)站開(kāi)發(fā)中常用的8個(gè)小技巧
- php數(shù)組鍵名技巧小結(jié)
- php數(shù)組索引與鍵值操作技巧實(shí)例分析
- 10條php編程小技巧
- 提高php編程效率技巧
- 十個(gè)PHP高級(jí)應(yīng)用技巧果斷收藏
相關(guān)文章
php DOS攻擊實(shí)現(xiàn)代碼(附如何防范)
小段php代碼實(shí)現(xiàn)DOS攻擊,有時(shí)候通過(guò)這段代碼不需要獲取服務(wù)器權(quán)限也可以作為攻擊的肉雞了,所以大家一定要注意網(wǎng)站安全2012-05-05
php生成縮略圖示例代碼分享(使用gd庫(kù)實(shí)現(xiàn))
分享一個(gè)利用php的GD庫(kù)生成縮略圖的例子,大家參考使用吧2014-01-01
phpcms配置列表頁(yè)以及獲得文章發(fā)布時(shí)間
這篇文章主要介紹了phpcms配置列表頁(yè)以及獲得文章發(fā)布時(shí)間 ,需要的朋友可以參考下2017-07-07
Laravel框架模型的創(chuàng)建及模型對(duì)數(shù)據(jù)操作示例
這篇文章主要介紹了Laravel框架模型的創(chuàng)建及模型對(duì)數(shù)據(jù)操作,結(jié)合實(shí)例形式分析了Laravel框架創(chuàng)建模型及使用模型進(jìn)行數(shù)據(jù)的增刪改查等相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
php使用curl和正則表達(dá)式抓取網(wǎng)頁(yè)數(shù)據(jù)示例
這篇文章主要介紹了php使用curl和正則表達(dá)式抓取網(wǎng)頁(yè)數(shù)據(jù)示例,這里是抓取某網(wǎng)站的小說(shuō),需要的朋友可以修改一下抓取其它數(shù)據(jù)2014-04-04
淺談PHP檢查數(shù)組中是否存在某個(gè)值 in_array 函數(shù)
下面小編就為大家?guī)?lái)一篇淺談PHP檢查數(shù)組中是否存在某個(gè)值 in_array 函數(shù)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06
thinkphp配置連接數(shù)據(jù)庫(kù)技巧
這篇文章主要介紹了thinkphp配置連接數(shù)據(jù)庫(kù)技巧,實(shí)例講述了ThinkPHP入口同目錄下配置數(shù)據(jù)庫(kù)及控制器另外連接數(shù)據(jù)庫(kù)的技巧,需要的朋友可以參考下2014-12-12
Zend?Framework框架db類select查詢器join鏈表使用示例
這篇文章主要介紹了Zend?Framework框架的Db類select查詢器join鏈表使用示例,需要的朋友可以參考下2014-03-03
thinkphp5.1框架中容器(Container)和門面(Facade)的實(shí)現(xiàn)方法分析
這篇文章主要介紹了thinkphp5.1框架中容器(Container)和門面(Facade)的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了thinkPHP5.1框架中容器與門面的定義、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-08-08

