php处理静态页面:页面设置缓存时间实例


Posted in PHP onJune 22, 2017

通过PHP去生成一个纯静态的页面:https://3water.com/article/116814.htm

问:如何触发系统生成纯静态化页面?

1.页面添加缓存时间

2.手动触发的方式

3.crontab定时扫描程序

我们来实现方案一:页面添加缓存时间

用户请求页面 => 页面是否过期 => => 否(获取静态页面) || =>是(动态页面生成一份新的静态页面)

if( 如果存在这个静态文件 && 没有过期){
  // 获取页面
}else{
  // 重新生成一份静态页面
}

ok,基本逻辑就是如此,下面我们完善代码:

<?php

if(is_file('./index.html') && (time()-filemtime('./index.html')) < 60){ 
  // 假设缓存时间是60秒
  // 获取页面
  require_once('./index.html');
}else{
  // 重新生成一份静态页面
  // 准备要展示到网页的数据
  $data = array( 
    array('id'=>1,'msg'=>'hello java'),
    array('id'=>2,'msg'=>'hello php'),
    array('id'=>3,'msg'=>'hello python'),
  );

  // 渲染到模板
  // 实际项目一般是在html里渲染
  // 这里演示 希望能看懂

  ob_start(); // 开始输入缓冲控制

  foreach($data as $item){
    echo $item['id'].'===>'.$item['msg'].'<br/>';
  }

  // 开始生成静态页面文件
  file_put_contents('index.html',ob_get_contents());
}

这样我们访问index.php,如果静态文件缓存没有过期,其实质访问的内容来自index.html这个静态文件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP与javascript对多项选择的处理
Oct 09 PHP
PHP4在Windows2000下的安装
Oct 09 PHP
PHP实现文件下载断点续传详解
Oct 15 PHP
标准版Eclipse搭建PHP环境的详细步骤
Nov 18 PHP
PHP判断JSON对象是否存在的方法(推荐)
Jul 06 PHP
简述php环境搭建与配置
Dec 05 PHP
YII2 实现多语言配置的方法分享
Jan 11 PHP
PHP错误处理函数register_shutdown_function使用示例
Jul 03 PHP
分析php://output和php://stdout的区别
May 06 PHP
php提取微信账单的有效信息
Oct 01 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 PHP
php将xml转化对象的实例详解
Nov 17 PHP
PHP使用redis消息队列发布微博的方法示例
Jun 22 #PHP
用PHP去掉文件头的Unicode签名(BOM)方法
Jun 22 #PHP
PHP简单装饰器模式实现与用法示例
Jun 22 #PHP
PHP实现的简单适配器模式示例
Jun 22 #PHP
php smtp实现发送邮件功能
Jun 22 #PHP
php实现页面纯静态的实例代码
Jun 21 #PHP
详解php实现页面静态化原理
Jun 21 #PHP
You might like
PHP 日,周,月点击排行统计
2012/01/11 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
json原理分析及实例介绍
2012/11/29 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
Jquery的each里用return true或false代替break或continue
2014/05/21 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
2016/10/27 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
bootstrap多层模态框滚动条消失的问题
2017/07/21 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
基于Vue的移动端图片裁剪组件功能
2017/11/28 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
2018/12/24 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
2019/03/04 Javascript
python Django批量导入不重复数据
2016/03/25 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
2012/05/24 面试题
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
自我鉴定范文200字
2013/10/02 职场文书
最热门的自我评价
2013/12/30 职场文书
公司年会策划方案
2014/05/17 职场文书
销售员岗位职责
2015/02/10 职场文书
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers