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 相关文章推荐
MySQL GBK→UTF-8编码转换
May 24 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
Dec 18 PHP
PHP文件大小格式化函数合集
Mar 10 PHP
PHP文件锁定写入实例解析
Jul 14 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
Jul 18 PHP
php基于双向循环队列实现历史记录的前进后退等功能
Aug 08 PHP
PHP制作用户注册系统
Oct 23 PHP
合格的PHP程序员必备技能
Nov 13 PHP
开启PHP的伪静态模式
Dec 31 PHP
简单解析PHP程序的运行流程
Jun 23 PHP
PHP实现的观察者模式实例
Jun 21 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
Jul 24 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中几种常见安全设置详解
2010/04/06 PHP
PHP游戏编程25个脚本代码
2011/02/08 PHP
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
jQuery动态产生select option下拉列表
2017/03/15 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
Python如何为图片添加水印
2016/11/25 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
Python实现的中国剩余定理算法示例
2017/08/05 Python
python3爬虫之设计签名小程序
2018/06/19 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
连锁经营管理专业大学生求职信
2013/10/30 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
初中学习计划书范文
2014/09/15 职场文书
2015公务员试用期工作总结
2014/12/12 职场文书
2016新年慰问信范文
2015/03/25 职场文书
校长一岗双责责任书
2015/05/09 职场文书
农业项目投资意向书
2015/05/09 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
golang操作rocketmq的示例代码
2022/04/06 Golang