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 相关文章推荐
在WIN98下以apache模块方式安装php
Oct 09 PHP
php模板函数 正则实现代码
Oct 15 PHP
php多个字符串替换成同一个的解决方法
Jun 18 PHP
kohana框架上传文件验证规则写法示例
Jul 14 PHP
php获取一个变量的名字的方法
Sep 05 PHP
PHP实现获取FLV文件的时间
Feb 10 PHP
YII Framework框架教程之安全方案详解
Mar 14 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
php计算多个集合的笛卡尔积实例详解
Feb 16 PHP
PHP实现搜索时记住状态的方法示例
May 11 PHP
php支付宝APP支付功能
Jul 29 PHP
PHP正则匹配到2个字符串之间的内容方法
Dec 24 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的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
Centos PHP 扩展Xchche的安装教程
2016/07/09 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
JavaScript传递变量: 值传递?引用传递?
2011/02/22 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
给应用部分的js代码设定一个统一的入口
2014/06/15 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
基于jQuery的Web上传插件Uploadify使用示例
2016/05/19 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
详解用函数式编程对JavaScript进行断舍离
2017/09/18 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
微信小程序-API接口安全详解
2019/07/16 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
小程序实现tab标签页
2020/11/16 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
[01:39:42]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python中用format函数格式化字符串的用法
2015/04/08 Python
python获取元素在数组中索引号的方法
2015/07/15 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
python之语音识别speech模块
2020/09/09 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
web页面录屏实现
2019/02/12 HTML / CSS
小学教研工作制度
2014/01/15 职场文书
幼儿教师寄语集锦
2014/04/03 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
预备党员表决心的话
2015/09/22 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS