PHP将整个网站生成HTML纯静态网页的方法总结


Posted in PHP onFebruary 05, 2012
<?php 
//在你的开始处加入 ob_start(); 
ob_start(); //以下是你的代码 
//在结尾加入 ob_end_clean(),并把本页输出到一个变量中 
$temp = ob_get_contents(); 
ob_end_clean(); 
//写入文件 
$fp = fopen(‘文件名','w'); 
fwrite($fp,$temp) or die(‘写文件错误'); 
?>

这只是最基本的方法,还不是很实用,因为网站是要更新的,要定期重新生成HTML

下面是我用的方法:

if(file_exists(“xxx.html”)) 
{ 
$time = time(); //文件修改时间和现在时间相差半小时一下的话,直接导向html文件,否则重新生成html 
if($time - filemtime(“xxx.html”) < 30*60) 
{ 
header(“Location:xxx.html”); 
} 
} 
//在你的开始处加入 ob_start(); 
ob_start(); 
//页面的详细内容 
//在结尾加入 ob_end_clean(),并把本页输出到一个变量中 
$temp = ob_get_contents(); 
ob_end_clean(); 
//写入文件 
$fp = fopen(‘xxx.html','w'); 
fwrite($fp,$temp) or die(‘写文件错误'); 
//重新导向 
header(“Location:xxx.html”);

下面是一些用到的函数的介绍:
1、Flush:刷新缓冲区的内容,输出。
函数格式:flush()
说明:这个函数经常使用,效率很高。

2、ob_start :打开输出缓冲区
函数格式:void ob_start(void)
说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。
3 、ob_get_contents :返回内部缓冲区的内容。
使用方法:string ob_get_contents(void)
说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。
4、ob_get_length:返回内部缓冲区的长度。
使用方法:int ob_get_length(void)
说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。
5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。
使用方法:void ob_end_flush(void)
说明:这个函数发送输出缓冲区的内容(如果有的话)。
6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区
使用方法:void ob_end_clean(void)
说明:这个函数不会输出内部缓冲区的内容而是把它删除!
7、ob_implicit_flush:打开或关闭绝对刷新
使用方法:void ob_implicit_flush ([int flag])
说明:使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush().

PHP 相关文章推荐
PHP 动态随机生成验证码类代码
Apr 09 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 PHP
ThinkPHP开发框架函数详解:C方法
Aug 14 PHP
Yii中CGridView实现批量删除的方法
Dec 28 PHP
Yii2.0 模态弹出框+ajax提交表单
May 22 PHP
php文件上传、下载和删除示例
Aug 28 PHP
PHP之十六个魔术方法详细介绍
Nov 01 PHP
PHP利用Socket获取网站的SSL证书与公钥
Jun 18 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
Jul 27 PHP
php 二维数组快速排序算法的实现代码
Oct 17 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 #PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 #PHP
PHP测试程序运行时间的类
Feb 05 #PHP
PHP设计模式 注册表模式
Feb 05 #PHP
PHP设计模式 注册表模式(多个类的注册)
Feb 05 #PHP
需要注意的几个PHP漏洞小结
Feb 05 #PHP
PHP的可变变量名的使用方法分享
Feb 05 #PHP
You might like
用PHP实现多级树型菜单
2006/10/09 PHP
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
JS option location 页面跳转实现代码
2008/12/27 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
jQuery的css() 方法使用指南
2015/05/03 Javascript
ES6新特性之字符串的扩展实例分析
2017/04/01 Javascript
BACKBONE.JS 简单入门范例
2017/10/17 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
vue实现pdf文档在线预览功能
2019/11/26 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
js代码编写无缝轮播图
2020/09/13 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
思想品德自我鉴定
2013/10/12 职场文书
销售工作人员的自我评价分享
2013/11/10 职场文书
电脑教师的教学自我评价
2013/11/26 职场文书
婚纱店策划方案
2014/05/22 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
2016教师节问候语
2015/11/10 职场文书
大学学习委员竞选稿
2015/11/20 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
学生会自荐信
2019/05/16 职场文书
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL
Go并发4种方法简明讲解
2022/04/06 Golang