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框架排名
Jul 04 PHP
PHP使用array_merge重新排列数组下标的方法
Jul 22 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
Aug 28 PHP
PHP常用的小程序代码段
Nov 14 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
Yii2数据库操作常用方法小结
May 04 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
May 20 PHP
php+ajax实现异步上传文件或图片功能
Jul 18 PHP
Django中通过定时任务触发页面静态化的处理方式
Aug 29 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
Oct 23 PHP
laravel config文件配置全局变量的例子
Oct 13 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中批量修改文件后缀名的函数代码
2011/10/23 PHP
php创建sprite
2014/02/11 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
2013/06/08 Javascript
js打开新窗口方法整理
2014/02/17 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
js数组的操作指南
2014/12/28 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
详解Bootstrap插件
2016/04/25 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
react build 后打包发布总结
2018/08/24 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
[08:04]TI4西雅图DOTA2前线报道 海涛探访各路人马
2014/07/09 DOTA
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
Python生成验证码实例
2014/08/21 Python
Python中的super()方法使用简介
2015/08/14 Python
python中使用print输出中文的方法
2018/07/16 Python
Python设计模式之外观模式实例详解
2019/01/17 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
C++面试题目
2013/06/25 面试题
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
小学教师的自我评价范例
2013/10/31 职场文书
学校志愿者活动总结
2014/06/27 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS