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函数
Oct 09 PHP
MySQL的FIND_IN_SET函数使用方法分享
Mar 27 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
Jan 17 PHP
php实现RSA加密类实例
Mar 26 PHP
php实现概率性随机抽奖代码
Jan 02 PHP
php使用timthumb生成缩略图的方法
Jan 22 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
Feb 26 PHP
PHP如何使用Memcached
Apr 05 PHP
PHP简单实现数字分页功能示例
Aug 24 PHP
php中的buffer缓冲区用法分析
May 31 PHP
PHP数组访问常用方法解析
Sep 05 PHP
PHP实现创建以太坊钱包转账等功能
Apr 21 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使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
Prototype Array对象 学习
2009/07/19 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
移动端js图片查看器
2016/11/17 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
详解JS中遍历语法的比较
2017/04/07 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
Python 元类使用说明
2009/12/18 Python
python logging类库使用例子
2014/11/22 Python
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
python识别验证码的思路及解决方案
2020/09/13 Python
北大自主招生自荐信
2013/10/19 职场文书
库房主管岗位职责
2013/12/31 职场文书
省三好学生申请材料
2014/01/22 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
国际商务专业求职信
2014/07/15 职场文书
最美家庭活动方案
2014/08/31 职场文书
爱国影片观后感
2015/06/18 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis