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 相关文章推荐
改变Apache端口等配置修改方法
Jun 05 PHP
PHP Stream_*系列函数
Aug 01 PHP
php递归实现无限分类生成下拉列表的函数
Aug 08 PHP
php的urlencode()URL编码函数浅析
Aug 09 PHP
php引用返回与取消引用的详解
Jun 08 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
Jun 12 PHP
如何使用GDB调试PHP程序
Dec 08 PHP
浅析Yii2 GridView实现下拉搜索教程
Apr 22 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
在Laravel中使用DataTables插件的方法
May 29 PHP
PHP设计模式之装饰器模式定义与用法简单示例
Aug 13 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简单中奖算法(实例)
2017/08/15 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
收集json解析的四种方法分享
2014/01/17 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
gulp解决跨域的配置文件问题
2017/06/08 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
2018/12/13 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
Python实现字符串逆序输出功能示例
2017/06/24 Python
Python实现多进程共享数据的方法分析
2017/12/04 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
将Dataframe数据转化为ndarry数据的方法
2018/06/28 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
Python 网络编程之UDP发送接收数据功能示例【基于socket套接字】
2019/10/11 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
CSS3 RGBA色彩模式使用实例讲解
2016/04/26 HTML / CSS
奢华时尚的独特视角:La Garçonne
2018/06/07 全球购物
法人委托书
2014/07/31 职场文书
单位委托书格式范本
2014/09/29 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
工程质检员岗位职责
2015/04/08 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS
python中mongodb包操作数据库
2022/04/19 Python
Java版 单机五子棋
2022/05/04 Java/Android