用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 相关文章推荐
JAVA/JSP学习系列之六
Oct 09 PHP
PHP 中文乱码解决办法总结分析
Jul 30 PHP
php 8小时时间差的解决方法小结
Dec 22 PHP
PHP生成网页快照 不用COM不用扩展.
Feb 11 PHP
PHP字符串的编码问题的详细介绍
Apr 27 PHP
php 获取SWF动画截图示例代码
Feb 10 PHP
php $_SERVER windows系统与linux系统下的区别说明
Feb 14 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
PHP模拟post提交数据方法汇总
Feb 16 PHP
php7安装mongoDB扩展的方法分析
Aug 02 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
基于PHP实现邮箱验证激活过程详解
Oct 28 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中取得URL的根域名的代码
2011/03/23 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
php利用嵌套数组拼接与解析json的方法
2017/02/07 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
Firefox div高度自适应
2009/04/28 Javascript
JavaScript和JQuery实用代码片段(一)
2010/04/07 Javascript
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
javascript常用函数(2)
2015/11/05 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
2017/12/20 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
vue-cli脚手架的.babelrc文件用法说明
2020/09/11 Javascript
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
Python反爬虫技术之防止IP地址被封杀的讲解
2019/01/09 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
Python代码注释规范代码实例解析
2020/08/14 Python
如何使用Python调整图像大小
2020/09/26 Python
英国Amara家居法国网站:家居装饰,现代装饰和豪华礼品
2016/12/15 全球购物
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
小学敬老月活动方案
2014/02/11 职场文书
暑假安全保证书
2015/02/28 职场文书
2016高考寄语集锦
2015/12/04 职场文书
Python图像处理库PIL详细使用说明
2022/04/06 Python