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 相关文章推荐
第九节--绑定
Nov 16 PHP
一个很不错的PHP翻页类
Jun 01 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
CodeIgniter图像处理类的深入解析
Jun 17 PHP
php定时计划任务与fsockopen持续进程实例
May 23 PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 PHP
PHP读书笔记整理_结构语句详解
Jul 01 PHP
php自定义函数实现汉字转换utf8编码的方法
Sep 29 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
Mar 30 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
Jun 05 PHP
利用PHP计算有多少小于当前数字的数字方法示例
Aug 26 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
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
php实现查询功能(数据访问)
2017/05/23 PHP
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
Python中你应该知道的一些内置函数
2017/03/31 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
2019/04/29 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
PyCharm 在Windows的有用快捷键详解
2020/04/07 Python
win10安装python3.6的常见问题
2020/07/01 Python
Python在字符串中处理html和xml的方法
2020/07/31 Python
CSS3 毛玻璃效果
2019/08/14 HTML / CSS
波兰家居和花园家具专家:4Home
2019/05/26 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
SQL Server笔试题
2012/01/10 面试题
开水果连锁店创业计划书
2013/12/29 职场文书
集团公司人力资源部岗位职责
2014/01/03 职场文书
项目计划书范文
2014/01/09 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
物理课外活动总结
2014/08/27 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
公司介绍信范文
2015/01/31 职场文书
获奖感言怎么写
2015/07/31 职场文书
2016年“5.12”国际护士节活动总结
2016/04/06 职场文书
详解JS数组方法
2021/11/20 Javascript
关于Vue中的options选项
2022/03/22 Vue.js