实例讲解PHP页面静态化


Posted in PHP onFebruary 05, 2018

页面静态化,顾名思义是将动态的PHP转化为静态的Html,流程如下图

实例讲解PHP页面静态化

用户访问index.php,如果存在index.html且在有效期内,则直接输出index.html,否则去生成index.html

file_put_contents()输出静态文件

ob_start()开启PHP缓冲区

ob_get_contents()获取缓冲区内容

ob_clean()清空缓冲区

ob_get_clean()相当于ob_get_contents()+ob_clean()

代码示例

<?php

if (file_exists('./html/index.html') && time() - filectime('./html/index.html') < 30) {
 require_once './html/index.html';
} else {
 // 引入数据库配置
 require_once "./config/database.php";
 // 引入Medoo类库
 require_once "./libs/medoo.php";
 // 实例化db对象
 $db = new medoo($config);
 // 获取数据
 $users = $db->select('user', ['uid', 'username', 'email']);
 // 引入模板
 require_once "./templates/index.php";
 // 写入html
 file_put_contents('./html/index.html', ob_get_contents());
}
PHP 相关文章推荐
第1次亲密接触PHP5(2)
Oct 09 PHP
BBS(php &amp; mysql)完整版(三)
Oct 09 PHP
PHP学习之PHP表达式
Oct 09 PHP
PHP遍历二维数组的代码
Apr 22 PHP
破解.net程序(dll文件)编译和反编译方法
Jan 31 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 PHP
php从数组中随机选择若干不重复元素的方法
Mar 14 PHP
WordPress分页伪静态加html后缀
Jun 08 PHP
php实现连接access数据库并转txt写入的方法
Feb 08 PHP
一次因composer错误使用引发的问题与解决
Mar 06 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
PHP+Apache实现二级域名之间共享cookie的方法
Jul 24 PHP
PHP使用ActiveMQ实例
Feb 05 #PHP
详解PHP中mb_strpos的使用
Feb 04 #PHP
详解PHP文件的自动加载(autoloading)
Feb 04 #PHP
PHP实现QQ登录的开原理和实现过程
Feb 04 #PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 #PHP
php实现解析xml并生成sql语句的方法
Feb 03 #PHP
PHP删除数组中指定下标的元素方法
Feb 03 #PHP
You might like
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
2013/04/24 PHP
Gambit vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
Jquery常用技巧收集整理篇
2010/11/14 Javascript
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
微信小程序 教程之wxapp视图容器 swiper
2016/10/19 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
Python编程求解二叉树中和为某一值的路径代码示例
2018/01/04 Python
终端命令查看TensorFlow版本号及路径的方法
2018/06/13 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
python微元法计算函数曲线长度的方法
2018/11/08 Python
Python requests模块实例用法
2019/02/11 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
Python 实现opencv所使用的图片格式与 base64 转换
2020/01/09 Python
django 实现简单的插入视频
2020/04/07 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
python如何操作mysql
2020/08/17 Python
五种Python转义表示法
2020/11/27 Python
高考励志标语
2014/06/05 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
2015年教师节活动总结
2015/03/20 职场文书
员工升职自荐信
2015/03/27 职场文书
诚实守信主题班会
2015/08/13 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang