php header()函数设置页面Cache缓存
Jun 02, 2016 am 09:14 AM手册上,我们对于cache都是写着如何设置,以便让代码不被cache:
代码如下 | 复制代码 |
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); // HTTP/1.1 |
而且在设置的时候还得注意在header前不能有输出,否则header设置无效,但都没有写过,如何给页面设置Cache,虽然我们知道有一些办法,比如 E-TAG之类的。当然也有简单的设置:
比如我们在输出前,对内容进行md5,将它当成e-tag只要没变化,就不会有影响。也有其他的方式:
代码如下 | 复制代码 |
$seconds_to_cache = 3600; |
缓存1小时,主要是过期时间得用gmdate来设置,而不是date,这个要注意,其他都差不多。maxage要和expire能够对得上。
对于PHP产生的动态内容,只需要在内容输出之前输出强制缓存的header即可,比如下面的代码即要求浏览器缓存文件1个月:
代码如下 | 复制代码 |
header("Cache-Control: public"); $offset = 30*60*60*24; // cache 1 month |
对于静态文件,一般的服务器都支持第3级缓存状态。要想达到第四级的缓存效果,要么像之前GZIP压缩那样,用PHP外包一层,然后用PHP处理。要么需要服务器端的支持,APACHE的一个模块mod_expires支持给文件添加expires header。把下面的代码加入你的blog目录下的.htaccess文件,如果你的服务器安装了mod_expires模块,则将自动生效,图片等强制缓存一个月,html文档缓存10分钟。如果该模块没有安装,也不会出错。
代码如下 | 复制代码 |
|
在这里有mod_expires更详细的文档和教程。不过我要说明的是,mod_expires在绝大多数服务器上都没安装
永久地址:
转载随意~请带上教程地址吧^^

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)
