用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 相关文章推荐
MVC模式的PHP实现
Oct 09 PHP
让你的PHP同时支持GIF、png、JPEG
Oct 09 PHP
url decode problem 解决方法
Dec 26 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
Jan 31 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
Aug 20 PHP
Linux下编译redis和phpredis的方法
Apr 07 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
Apr 15 PHP
php中array_unshift()修改数组key注意事项分析
May 16 PHP
PHP搭建大文件切割分块上传功能示例
Jan 04 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
PHP单例模式实例分析【防继承,防克隆操作】
May 22 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
3种平台下安装php4经验点滴
2006/10/09 PHP
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
有关PHP中MVC的开发经验分享
2012/05/17 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
thinkPHP实现将excel导入到数据库中的方法
2016/04/22 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
解析dom中的children对象数组元素firstChild,lastChild的使用
2013/07/10 Javascript
JS实现图片局部放大或缩小的方法
2016/08/20 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
jQuery实现手风琴特效
2021/01/11 jQuery
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
python实现图片文件批量重命名
2020/03/23 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
python opencv实现图像边缘检测
2019/04/29 Python
使用TensorBoard进行超参数优化的实现
2020/07/06 Python
python 简单的调用有道翻译
2020/11/25 Python
职业培训师职业生涯规划
2014/02/18 职场文书
材料员岗位职责
2014/03/13 职场文书
学生会竞聘书范文
2014/03/31 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
恋恋笔记本观后感
2015/06/16 职场文书
中秋联欢会主持词
2015/07/04 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang