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 相关文章推荐
dede3.1分页文字采集过滤规则详说(图文教程)
Apr 03 PHP
PHP防注入安全代码
Apr 09 PHP
php 随机排序广告的实现代码
May 09 PHP
用PHP书写安全的脚本代码
Feb 05 PHP
精美漂亮的php分页类代码
Apr 02 PHP
QQ互联一键登录审核不通过的解决方案
Sep 10 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
php+xml编程之xpath的应用实例
Jan 24 PHP
PHP快速排序quicksort实例详解
Sep 28 PHP
php实现的mysqldb读写分离操作类示例
Feb 07 PHP
自制PHP框架之路由与控制器
May 07 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 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开发框架总结收藏
2008/04/24 PHP
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
JavaScript实现在页面间传值的方法
2015/04/07 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
JavaScript运算符小结
2015/06/03 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
[00:47]DOTA2荣耀之路6:玩不了啦!
2018/05/30 DOTA
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
Python中查看文件名和文件路径
2017/03/31 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
2018/04/21 Python
一百行python代码将图片转成字符画
2021/02/19 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
MYSQL基础面试题
2012/05/13 面试题
音乐学个人的自荐书范文
2013/11/26 职场文书
吃空饷专项治理工作实施方案
2014/03/04 职场文书
家长对学生的评语
2014/04/18 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
pytorch交叉熵损失函数的weight参数的使用
2021/05/24 Python