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 addslashes和mysql_real_escape_string
Jan 24 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 PHP
PHP批量上传图片的具体实现方法介绍.
Feb 26 PHP
使用PHPMailer实现邮件发送代码分享
Oct 23 PHP
php编写简单的文章发布程序
Jun 18 PHP
php验证码生成代码
Nov 11 PHP
PHP全功能无变形图片裁剪操作类与用法示例
Jan 10 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
Mar 02 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
Sep 30 PHP
PHP基于phpqrcode类生成二维码的方法详解
Mar 14 PHP
如何利用PHP实现上传图片功能详解
Sep 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中$_POST与php://input的区别实例分析
2015/01/07 PHP
php使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
php实现倒计时效果
2015/12/19 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
url参数中有+、空格、=、%、&amp;、#等特殊符号的问题解决
2013/05/15 Javascript
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
JavaScript数据类型检测代码分享
2015/01/26 Javascript
js实现匹配时换色的输入提示特效代码
2015/08/17 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
jQuery中的一些常见方法小结(推荐)
2016/06/13 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
对Python 网络设备巡检脚本的实例讲解
2018/04/22 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
django和vue实现数据交互的方法
2019/08/21 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
python实现批处理文件
2020/07/28 Python
Python3.9.1中使用match方法详解
2021/02/08 Python
国际贸易专业推荐信
2013/11/15 职场文书
数学专业推荐信范文
2013/11/21 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书
导游词之山东孔庙
2019/11/04 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
php 原生分页
2021/04/01 PHP
我收到了德劲DE1107
2022/04/05 无线电
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技