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 高效率写法 推荐
Feb 21 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
Jun 18 PHP
PHP中使用php://input处理相同name值的表单数据
Feb 03 PHP
Apache启动报错No space left on device: AH00023该怎么解决
Oct 16 PHP
PHP浮点数的一个常见问题
Mar 10 PHP
学习PHP session的传递方式
Jun 15 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
php实现表单提交上传文件功能
May 28 PHP
实例介绍PHP中zip_open()函数用法
Feb 15 PHP
浅析PHP7的多进程及实例源码
Apr 14 PHP
PHP如何解决微信文章图片防盗链
Dec 09 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中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
PHP实现加强版加密解密类实例
2015/07/29 PHP
提高php编程效率技巧
2015/08/13 PHP
Prototype源码浅析 String部分(一)之有关indexOf优化
2012/01/15 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
用js制作淘宝放大镜效果
2020/10/28 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
JavaScript中引用vs复制示例详析
2018/12/06 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
Python基于Tkinter实现的记事本实例
2015/06/17 Python
Python编程argparse入门浅析
2018/02/07 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
2018/07/17 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
详解html5 shiv.js和respond.min.js
2018/01/24 HTML / CSS
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
加拿大折扣、优惠券和交易网站:WagJag
2018/02/07 全球购物
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
Wolford法国官网:奥地利奢侈内衣品牌
2020/08/11 全球购物
CLR与IL分别是什么含义
2016/08/23 面试题
计算机开发个人求职信范文
2013/09/26 职场文书
运动会广播稿500字
2014/01/28 职场文书
红旗方阵解说词
2014/02/12 职场文书
高中英语演讲稿范文
2014/04/24 职场文书
访谈节目策划方案
2014/05/15 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
诚信教育主题班会
2015/08/13 职场文书
安全生产培训心得体会
2016/01/18 职场文书
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技