实例讲解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 相关文章推荐
PHP 的几个配置文件函数
Dec 21 PHP
php循环输出数据库内容的代码
May 24 PHP
不要轻信 PHP_SELF的安全问题
Sep 05 PHP
php面向对象全攻略 (四)构造方法与析构方法
Sep 30 PHP
spl_autoload_register与autoload的区别详解
Jun 03 PHP
PHP 动态生成静态HTML页面示例代码
Jan 15 PHP
php获取QQ头像并显示的方法
Dec 23 PHP
php中namespace use用法实例分析
Jan 22 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
Apr 17 PHP
PHP简单实现冒泡排序的方法
Dec 26 PHP
Laravel关系模型指定条件查询方法
Oct 10 PHP
PHP操作Redis常用命令的实例详解
Dec 23 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 Directory 函数的详解
2013/03/07 PHP
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
详解webpack 多页面/入口支持&amp;公共组件单独打包
2017/06/29 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
Python PyQt5标准对话框用法示例
2017/08/23 Python
python cx_Oracle的基础使用方法(连接和增删改查)
2017/11/19 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
python3实现名片管理系统
2020/11/29 Python
PyQt5实现类似别踩白块游戏
2019/01/24 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
浅析HTML5 Landmark
2020/09/11 HTML / CSS
如何开发安全的AJAX应用
2014/03/26 面试题
工厂厂长岗位职责
2013/11/08 职场文书
锦旗标语大全
2014/06/23 职场文书
迁户口计划生育证明
2014/10/19 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
react合成事件与原生事件的相关理解
2021/05/13 Javascript
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS