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中MD5函数使用实例代码
Jun 07 PHP
php生成随机密码的三种方法小结
Sep 04 PHP
php学习笔记 数组的常用函数
Jun 13 PHP
有道搜索和IP138的IP的API接口(PHP应用)
Nov 29 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
6个超实用的PHP代码片段
Aug 10 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
Apr 07 PHP
PHP 的比较运算与逻辑运算详解
May 12 PHP
php 可变函数使用小结
Jun 12 PHP
PHP连续签到功能实现方法详解
Dec 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和AJAX创建RSS聚合器的代码
2007/03/13 PHP
PHP 加密解密内部算法
2010/04/22 PHP
PHP var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
php使用反射插入对象示例分享
2014/03/11 PHP
用PHP代码给图片加水印
2015/07/01 PHP
php 数组字符串搜索array_search技巧
2016/07/05 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
2019/12/13 PHP
可实现多表单提交的javascript函数
2007/08/01 Javascript
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
Jquery插件之多图片异步上传
2010/10/20 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
AngularJS实现表单元素值绑定操作示例
2017/10/11 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
Python中操作MySQL入门实例
2015/02/08 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
opencv 阈值分割的具体使用
2020/07/08 Python
详解CSS3中Media Queries的相关使用
2015/07/17 HTML / CSS
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
什么是方法的重载
2013/06/24 面试题
行政管理专业推荐信
2013/11/02 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
租房协议书
2014/09/12 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
十大经典日本动漫排行榜 海贼王第三,犬夜叉仅第八
2022/03/18 日漫