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 相关文章推荐
E路文章系统PHP
Dec 11 PHP
国外PHP程序员的13个好习惯小结
Feb 20 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 PHP
PHP中SimpleXML函数用法分析
Nov 26 PHP
php取得字符串首字母的方法
Mar 25 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
Feb 26 PHP
PHP之十六个魔术方法详细介绍
Nov 01 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
thinkphp修改配置进入默认首页的方法
Feb 07 PHP
php快速导入大量数据的实例方法
Sep 23 PHP
php的instanceof和判断闭包Closure操作示例
Jan 26 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 REMOTE_ADDR之获取访客IP的代码
2008/04/22 PHP
php中get_headers函数的作用及用法的详细介绍
2013/04/27 PHP
php中生成随机密码的自定义函数代码
2013/10/21 PHP
PHP魔术方法__GET、__SET使用实例
2014/11/25 PHP
php字符串按照单词进行反转的方法
2015/03/14 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
js实现的星星评分功能函数
2015/12/09 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
jQuery中$.grep() 过滤函数 数组过滤
2016/11/22 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
Angularjs处理页面闪烁的解决方法
2017/03/09 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
2018/08/30 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
win10系统中安装scrapy-1.1
2016/07/03 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
婚礼司仪主持词
2014/03/14 职场文书
分居协议书范本(律师见证版)
2014/11/26 职场文书
安全保证书格式
2015/02/28 职场文书
python实现层次聚类的方法
2021/11/01 Python
python实现局部图像放大
2021/11/17 Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python