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 相关文章推荐
PHP5中的this,self和parent关键字详解教程
Mar 19 PHP
phpmyadmin 访问被拒绝的真实原因
Jun 15 PHP
PHP关联数组的10个操作技巧
Jan 21 PHP
基于PHP选项与信息函数的使用详解
May 10 PHP
php fsockopen伪造post与get方法的详解
Jun 14 PHP
WIN8.1下搭建PHP5.6环境
Apr 29 PHP
PHP批量去除BOM头代码分享
Jun 26 PHP
php编程每天必学之验证码
Mar 03 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
Laravel中任务调度console使用方法小结
May 07 PHP
PHP PDOStatement::fetchObject讲解
Feb 01 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 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代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
php抽象类用法实例分析
2015/07/07 PHP
PHP使用缓存即时输出内容(output buffering)的方法
2015/08/03 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
javascript 文档的编码问题解决
2009/03/01 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
2011/04/19 Javascript
JavaScript实现拼音排序的方法
2012/11/20 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
JavaScript中Function详解
2015/02/27 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
2018/11/21 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
2019/02/22 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
python调用百度语音识别api
2018/08/30 Python
python爬取淘宝商品销量信息
2018/11/16 Python
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
会计找工作求职信范文
2013/12/09 职场文书
行政专员岗位职责
2014/01/02 职场文书
珍珠鸟教学反思
2014/02/01 职场文书
低碳环保倡议书
2014/04/14 职场文书
党员活动日总结
2014/05/05 职场文书
2015年先进个人自荐书
2015/03/24 职场文书
解决python3安装pandas出错的问题
2021/05/20 Python
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js
排查Tomcat进程假死的问题
2022/05/06 Servers