php静态文件返回304技巧分享
2015-01-24信息快讯网
这篇文章主要分享了一则php静态文件返回304的小技巧,需要的朋友可以参考下
有时一些静态文件(如图片)会由php输出,会发现请求都是200,静态文件每次都去服务器上请求太浪费资源了,这时如何让浏览器缓存图片呢?就需要我们在php中输出304了。
我们可以利用php中的 HTTP_IF_MODIFIED_SINCE 结合etag来干这事。Etag没有明确规定的格式,我们可以用文件修改时间的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; } }
在代码中可以在静态文件(如图片)输出之前调用即可。
php使用正则表达式获取图片url的方法
php使用CURL伪造IP和来源实例详解
php+mysql实现无限分类实例详解
php截取html字符串及自动补全html标签的方法
php在linux下检测mysql同步状态的方法
php导入excel文件到mysql数据库的方法
PHP上传文件时自动分配路径的方法
PHP中使用SimpleXML检查XML文件结构实例
php中$_POST与php://input的区别实例分析
php判断当前用户已在别处登录的方法
php实现utf-8转unicode函数分享
windows中为php安装mongodb与memcache
phpQuery让php处理html代码像jQuery一样方便
php基于表单密码验证与HTTP验证用法实例
php使用fputcsv()函数csv文件读写数据的方法
写一段简单的PHP建立文件夹代码
php读取flash文件高宽帧数背景颜色的方法
php静态文件生成类实例分析
PHP实现格式化文件数据大小显示的方法
PHP静态文件生成类实例
PHP合并静态文件详解