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來干這事。Etag沒有明確規(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)站開發(fā)中常用的8個(gè)小技巧
- php數(shù)組鍵名技巧小結(jié)
- php數(shù)組索引與鍵值操作技巧實(shí)例分析
- 10條php編程小技巧
- 提高php編程效率技巧
- 十個(gè)PHP高級(jí)應(yīng)用技巧果斷收藏
相關(guān)文章
CI框架無限級(jí)分類+遞歸的實(shí)現(xiàn)代碼
CodeIgniter是一個(gè)輕量級(jí)但功能強(qiáng)大的PHP框架,基于MVC設(shè)計(jì)模式,提供了一套豐富的類庫(kù),簡(jiǎn)單易學(xué),高效實(shí)用。下面給大家介紹CI框架無限級(jí)分類+遞歸的實(shí)現(xiàn)代碼,感興趣的朋友參考下吧2016-11-11php網(wǎng)上商城購(gòu)物車設(shè)計(jì)代碼分享
我們要做的是一個(gè)可以包含促銷活動(dòng)的購(gòu)物車,所以比較其他簡(jiǎn)單的購(gòu)物車,會(huì)稍微復(fù)雜一點(diǎn)。(用的是PHP的zend framework框架)2012-02-02thinkPHP框架實(shí)現(xiàn)的無限回復(fù)評(píng)論功能示例
這篇文章主要介紹了thinkPHP框架實(shí)現(xiàn)的無限回復(fù)評(píng)論功能,結(jié)合實(shí)例形式簡(jiǎn)單分析了thinkPHP實(shí)現(xiàn)無限回復(fù)的相關(guān)控制器、視圖操作技巧,需要的朋友可以參考下2018-06-06Yii2.0使用阿里云OSS的SDK上傳圖片、下載、刪除圖片示例
本篇文章主要介紹了Yii2.0使用阿里云OSS的SDK上傳圖片、下載、刪除圖片示例,具有一定的參考價(jià)值,有興趣的可以了解一下2017-09-09PHP實(shí)現(xiàn)留言板功能的詳細(xì)代碼
這篇文章主要為大家詳細(xì)介紹了PHP實(shí)現(xiàn)留言板功能的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03