header()函数在php的使用很大,下面我来介绍利用它实现页面缓存的一些方法,但使用header前必须注意,在它之前不能任何输出,包括空格。

手册上,我们对于cache都是写着如何设置,以便让代码不被cache,代码如下:

header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"); // HTTP/1.1

header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past

header("Pragma: no-cache"); // Date in the past

而且在设置的时候还得注意在header前不能有输出,否则header设置无效,但都没有写过,如何给页面设置Cache,虽然我们知道有一些办法,比如 E-TAG之类的,当然也有简单的设置,比如我们在输出前,对内容进行md5,将它当成e-tag只要没变化,就不会有影响.也有其他的方式,代码如下:

$seconds_to_cache = 3600;

$ts = gmdate("D, d M Y H:i:s", time() + $seconds_to_cache) . " GMT";

header("Expires: $ts"); header("Pragma: cache");

header("Cache-Control: max-age=$seconds_to_cache");

缓存1小时,主要是过期时间得用gmdate来设置,而不是date,这个要注意,其他都差不多。maxage要和expire能够对得上。

对于PHP产生的动态内容,只需要在内容输出之前输出强制缓存的header即可,比如下面的代码即要求浏览器缓存文件1个月,代码如下:

对于静态文件,一般的服务器都支持第3级缓存状态。要想达到第四级的缓存效果,要么像之前GZIP压缩那样,用PHP外包一层,然后用PHP处理。要么需要服务器端的支持,APACHE的一个模块mod_expires支持给文件添加expires header。把下面的代码加入你的blog目录下的.htaccess文件,如果你的服务器安装了mod_expires模块,则将自动生效,图片等强制缓存一个月,html文档缓存10分钟。如果该模块没有安装,也不会出错,代码如下:

ExpiresActive On

ExpiresByType image/gif A2592000

ExpiresByType image/jpeg A2592000

ExpiresByType image/png A2592000

ExpiresByType application/x-shockwave-flash A2592000

ExpiresByType text/css A2592000

ExpiresByType application/x-javascript A2592000

ExpiresByType text/html A600

在这里有mod_expires更详细的文档和教程。不过我要说明的是,mod_expires在绝大多数服务器上都没安装.

php 设置页面内容具有缓存性,php header()设置页面Cache缓存相关推荐

  1. linux 页面内容输出,Node.js 一个简单的页面输出

    最近决定重拾node.js,用它来做一个合并JS文件的东西.由于忘得差不多了,先看能不能输出一个页面来再说.以下是我的一些笔记,省得以后又忘净光-- 安装过程就不说了.如果成功是能使用node的命令. ...

  2. php调用另一个页面内容,php怎么实现调用另一个页面

    php怎么实现调用另一个页面 发布时间:2020-07-03 16:57:33 来源:亿速云 阅读:77 作者:Leah php怎么实现调用另一个页面?针对这个问题,这篇文章详细介绍了相对应的分析和解 ...

  3. php获取页面输出内容,PHP CURL获取页面内容输出例子

    使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,而不是直接输出.这个时候就必需设置curl的CURLOPT_RETURNTRANSFER选项为1或true. 1.curl ...

  4. 怎么把一个控件放到tab页面上去?_移动端页面内容切换

    # 移动端页面内容切换 上周做了一个和页面切换相关的需求,为了探寻在需求场景下最符合用户心理模型的交互方式,当时一共输出了有四五种方案.总结一下各种切换页面内容的方式的特点和他们适用的场景.## 一. ...

  5. IIS设置静态内容缓存时间

    关于IIS设置静态内容缓存时间,在这里给大家介绍一下:我们的网站中往往包含大量的页面组件,比如图片.样式表文件.JS脚本文件和Flash动画.这些组件的变化频率非常低,尤其是那些构成网站基本框架的组件 ...

  6. 如何设置静态内容缓存时间

    百度的站长平台,大家可以多多关注一下.上面都有些基本的优化建议.对于想优化却不知道从什么地方下手的朋友,可以先解决上面提到的问题. 今天来说说"页面优化建议"里的"设置静 ...

  7. LayUi前端框架删除数据缓存问题(解决删除后刷新页面内容又会显示问题)

    LayUi前端框架删除数据缓存问题(解决删除后刷新页面内容又会显示问题) 参考文章: (1)LayUi前端框架删除数据缓存问题(解决删除后刷新页面内容又会显示问题) (2)https://www.cn ...

  8. UNI-APP,设置某个页面横屏后,恢复竖屏,返回再次进入其他页面时,页面内容放大错乱

    实现横竖屏方法: portrait-primary: 竖屏正方向: portrait-secondary: 竖屏反方向,屏幕正方向按顺时针旋转180°: landscape-primary: 横屏正方 ...

  9. MySQL建表添加乐观锁字段_Java秒杀系统优化-Redis缓存-分布式session-RabbitMQ异步下单-页面静态化...

    Java秒杀系统优化-Redis缓存-分布式session-RabbitMQ异步下单-页面静态化 项目介绍 基于SpringBoot+Mybatis搭建的秒杀系统,并且针对高并发场景进行了优化,保证线 ...

最新文章

  1. 学了js php就简单,学习笔记:JS + 简单的PHP实现用户注册及登录
  2. python计算机_基础python计算机知识
  3. MikuMikuShaders
  4. 黄峥为何放手拼多多?数据揭秘电商平台布局背后逻辑
  5. tensor转list_tensorflow中ckpt转pb
  6. 牛客题霸 NC19 子数组的最大累加和问题
  7. nginx-模块内存泄露调试
  8. xampp 无法启动mysql
  9. php5.0相等,关于php:3个相等
  10. 免费的编程中文书籍索引(2018第三版)
  11. 计算机应用word作业,《计算机应用基础》作业
  12. Android MVP Presenter 中引发的空指针异常
  13. 【VS开发】ConvertBSTRToString(filename) 不能将string转换为BSTR
  14. php将开始日期与结束日期组成数组,php根据开始日期和结束日期得到时间数组
  15. Java使用数组学习心得
  16. windowsxp主题包把windowsXP主题改成Windows7风格
  17. Word的样式库在 选项卡中_Word自动生成目录的四种方法步骤
  18. MYSQL Day03~MySQL 常用命令汇总
  19. linux4 系统下载,syslinux下载|
  20. 软件测试怎么测微信朋友圈,面试题:软件测试,如何测微信的朋友圈?

热门文章

  1. ASP用正则验证邮箱地址手机号码电话号码格式
  2. 我眼中的Web2.0
  3. org.apache.axis.ConfigurationException: No service named ldapOperate is available解决方法
  4. 推荐系统实践:从多领域优化到AutoML框架
  5. 【论文】Awesome Relation Extraction Paper(关系抽取)(PART IV)
  6. java+tableseg,多种功能集成,带Refresh刷新的tableV,Seg分段控件
  7. easyui关闭dialog后刷新父页面_两种方法WordPress批量打开、关闭文章评论功能
  8. game module 停止运行_恒温摇床长时间运行的注意事项
  9. java程序设计_Java程序设计-Object类(笔记)
  10. 视频号、抖音、海外Tiktok到底该选择那个平台更好