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读取30天之内的根据算法排序的代码
Apr 06 PHP
memcached 和 mysql 主从环境下php开发代码详解
May 16 PHP
PHP 图片上传代码
Sep 13 PHP
PHP使用数组实现队列
Feb 05 PHP
奇怪的PHP引用效率问题分析
Mar 23 PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 PHP
PHP图像处理类库及演示分享
May 17 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
Aug 12 PHP
PHP使用curl制作简易百度搜索
Nov 03 PHP
PHP插件PHPMailer发送邮件功能
Feb 28 PHP
php面试中关于面向对象的相关问题
Feb 13 PHP
PHP后门隐藏的一些技巧总结
Nov 04 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实现utf-8和GB2312编码相互转换函数代码
2013/02/07 PHP
PHP递归调用的小技巧讲解
2013/02/19 PHP
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
php中字符串和正则表达式详解
2014/10/23 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
详解如何在vue项目中引入elementUI组件
2018/02/11 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
Python 中的 else详解
2016/04/23 Python
Python分析学校四六级过关情况
2017/11/22 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
python 发送和接收ActiveMQ消息的实例
2019/01/30 Python
python列表推导式操作解析
2019/11/26 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
2021/03/03 Python
大学生应聘推荐信范文
2013/11/19 职场文书
护理毕业生自我鉴定
2014/02/11 职场文书
同居协议书范本
2014/04/23 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
党支部考察鉴定意见
2015/06/02 职场文书