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 相关文章推荐
WINDOWS 2000下使用ISAPI方式安装PHP
Sep 05 PHP
Drupal读取Excel并导入数据库实例
Mar 02 PHP
使用PHPExcel操作Excel用法实例分析
Mar 26 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
Centos PHP 扩展Xchche的安装教程
Jul 09 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
Dec 07 PHP
老生常谈PHP面向对象之解释器模式
May 17 PHP
php取出数组单个值的方法
Mar 12 PHP
PHP crc32()函数讲解
Feb 14 PHP
laravel http 自定义公共验证和响应的方法
Sep 29 PHP
PHP常用函数之根据生日计算年龄功能示例
Oct 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后门URL的防范
2013/11/12 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
优化javascript的执行速度
2010/01/23 Javascript
javascript中的this详解
2014/12/08 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
Angular中$cacheFactory的作用和用法实例详解
2016/08/19 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
Vue底层实现原理总结
2018/02/17 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
2018/09/22 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
vue+mock.js实现前后端分离
2019/07/24 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
布同自制Python函数帮助查询小工具
2011/03/13 Python
Python如何实现守护进程的方法示例
2017/02/08 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
解决python Markdown模块乱码的问题
2019/02/14 Python
Python-for循环的内部机制
2020/06/12 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
python statsmodel的使用
2020/12/21 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
四查四看剖析材料
2014/02/14 职场文书
十八大宣传标语
2014/10/09 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
结婚幸福感言
2015/08/01 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
Javascript 解构赋值详情
2021/11/17 Javascript