用php的ob_start来生成静态页面的方法分析


Posted in PHP onMarch 09, 2011

虽然方法很多,但使用起来简便容易的,我觉得还是先判断已经生成的首页文件的生成时间和现有时间之间的差值,如果满足某个值就开始生成,这种方法比较来得容易,不多说了,开始吧!

在开始之前还是提一下三个函数吧:"ob_start()、ob_end_clean()、ob_get_contents()"

ob_start():是打开缓冲区的,就是要把您需要生成的静态文件的内容缓存在这里;
ob_get_contents():是读出缓冲区里的内容,下面有代码为例;
ob_end_clean():这个比较重要,只有使用了这个函数后,缓冲区里的内容才会读取出来;复制内容到剪贴板代码:

if(file_exists("./index.htm"))//看静态index.htm文件是否存在 
{ 
$time=time(); //文件修改时间和现在时间相差?的话,直接导向htm文件,否则重新生成htm 
if($time-filemtime("./index.htm")< 600) 
{ 
header("Location:classhtml/main.htm"); } 
} //在你的开始处加入ob_start();CHINAZ 
//首页内容,就是你的动态部分了 
//在结尾加入ob_end_clean(),并把本页输出到一个变量中 
$temp=ob_get_contents(); 
ob_end_clean(); 
//写入文件 
$fp=fopen("./index.htm",'w'); 
fwrite($fp,$temp) or die('写文件错误'); 
//echo"生成HTML完成!";

实例代码:

<?php 
ob_start(); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title><?php echo '编程导航 dh.3water.com';?></title> 
</head> <body> 
<?php echo "dh.3water.com";?> 
</body> 
</html> 
<?php 
$cacheStr=ob_get_contents(); 
$handle=fopen("3water.html","w"); 
fwrite($handle, $cacheStr); 
ob_clean(); 
?>
PHP 相关文章推荐
PHP4实际应用经验篇(5)
Oct 09 PHP
php中支持多种编码的中文字符串截取函数!
Mar 20 PHP
浅析php中常量,变量的作用域和生存周期
Aug 10 PHP
使用php批量删除数据库下所有前缀为prefix_的表
Jun 09 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
Sep 16 PHP
PHP删除指定目录中的所有目录及文件的方法
Feb 26 PHP
php中ob函数缓冲机制深入理解
Aug 03 PHP
变量在 PHP7 内部的实现(一)
Dec 21 PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
php进程(线程)通信基础之System V共享内存简单实例分析
Nov 09 PHP
PHP用GD库生成高质量的缩略图片
Mar 09 #PHP
php GeoIP的使用教程
Mar 09 #PHP
让PHP COOKIE立即生效,不用刷新就可以使用
Mar 09 #PHP
通过JavaScript或PHP检测Android设备的代码
Mar 09 #PHP
PHP中uploaded_files函数使用方法详解
Mar 09 #PHP
PHP $_FILES函数详解
Mar 09 #PHP
PHP中for与foreach的区别分析
Mar 09 #PHP
You might like
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
如何使用Strace调试工具
2013/06/03 PHP
php数据序列化测试实例详解
2017/08/12 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
js生成随机数的方法实例
2015/10/16 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
vue ssr 实现方式(学习笔记)
2019/01/18 Javascript
vue+web端仿微信网页版聊天室功能
2019/04/30 Javascript
[03:48]大碗DOTA
2019/07/25 DOTA
python生成词云的实现方法(推荐)
2017/06/13 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
python3射线法判断点是否在多边形内
2019/06/28 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
使用SVG实现提示框功能的示例代码
2020/06/05 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
一套软件开发工程师笔试题
2015/05/18 面试题
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
员工培训心得体会
2013/12/30 职场文书
服务员岗位责任制
2014/02/11 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书
房产分割协议书范文
2014/11/21 职场文书
前台接待员岗位职责
2015/04/15 职场文书
社会实践活动总结格式
2015/05/11 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python