php靜態(tài)文件返回304技巧分享
有時一些靜態(tài)文件(如圖片)會由php輸出,會發(fā)現(xiàn)請求都是200,靜態(tài)文件每次都去服務器上請求太浪費資源了,這時如何讓瀏覽器緩存圖片呢?就需要我們在php中輸出304了。
我們可以利用php中的 HTTP_IF_MODIFIED_SINCE 結合etag來干這事。Etag沒有明確規(guī)定的格式,我們可以用文件修改時間的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)用即可。
相關文章
Laravel框架模型的創(chuàng)建及模型對數(shù)據(jù)操作示例
這篇文章主要介紹了Laravel框架模型的創(chuàng)建及模型對數(shù)據(jù)操作,結合實例形式分析了Laravel框架創(chuàng)建模型及使用模型進行數(shù)據(jù)的增刪改查等相關操作技巧,需要的朋友可以參考下2019-05-05
php使用curl和正則表達式抓取網(wǎng)頁數(shù)據(jù)示例
這篇文章主要介紹了php使用curl和正則表達式抓取網(wǎng)頁數(shù)據(jù)示例,這里是抓取某網(wǎng)站的小說,需要的朋友可以修改一下抓取其它數(shù)據(jù)2014-04-04
淺談PHP檢查數(shù)組中是否存在某個值 in_array 函數(shù)
下面小編就為大家?guī)硪黄獪\談PHP檢查數(shù)組中是否存在某個值 in_array 函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06
Zend?Framework框架db類select查詢器join鏈表使用示例
這篇文章主要介紹了Zend?Framework框架的Db類select查詢器join鏈表使用示例,需要的朋友可以參考下2014-03-03
thinkphp5.1框架中容器(Container)和門面(Facade)的實現(xiàn)方法分析
這篇文章主要介紹了thinkphp5.1框架中容器(Container)和門面(Facade)的實現(xiàn)方法,結合實例形式分析了thinkPHP5.1框架中容器與門面的定義、實現(xiàn)方法及相關操作注意事項,需要的朋友可以參考下2019-08-08

