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加MYSQL服务器
Oct 09 PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
Jul 29 PHP
php将数据库中的电话号码读取出来并生成图片
Aug 31 PHP
网页游戏开发入门教程三(简单程序应用)
Nov 02 PHP
php 运行效率总结(提示程序速度)
Nov 26 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
May 26 PHP
使用PHP导出Word文档的原理和实例
Oct 21 PHP
PHP中$_FILES的使用方法及注意事项说明
Feb 14 PHP
php定时计划任务与fsockopen持续进程实例
May 23 PHP
php自定义类fsocket模拟post或get请求的方法
Jul 31 PHP
PHP网站自动化配置的实现方法(必看)
May 27 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
Nov 10 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+Mysql+jQuery实现动态展示信息
2011/10/08 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
实例讲解PHP表单
2020/06/10 PHP
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
Bootstrap DateTime Picker日历控件简单应用
2017/03/25 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
angular-tree-component的使用详解
2018/07/30 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
python和c语言的主要区别总结
2019/07/07 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
python hashlib加密实现代码
2019/10/17 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
html5视频常用API接口的实战示例
2020/03/20 HTML / CSS
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
优秀幼教自荐信
2014/02/03 职场文书
个人求职意向书
2015/05/11 职场文书
医院见习总结
2015/06/24 职场文书
建议书的格式及范文
2015/09/14 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
python基础入门之普通操作与函数(三)
2021/06/13 Python
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS