用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 相关文章推荐
PHP生成便于打印的网页
Oct 09 PHP
PHP4和PHP5共存于一系统
Nov 17 PHP
一键删除顽固的空文件夹 软件下载
Jan 26 PHP
PHP下用rmdir实现删除目录的三种方法小结
Apr 20 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
Jun 27 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
php计算指定目录下文件占用空间的方法
Mar 13 PHP
PHP实现Google plus的好友拖拽分组效果
Oct 21 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 PHP
HTTP头隐藏PHP版本号实现过程解析
Dec 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学习资料汇总与网址
2007/03/16 PHP
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
php 伪静态之IIS篇
2014/06/02 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
PHP7 弃用功能
2021/03/09 PHP
js AppendChild与insertBefore用法详细对比
2013/12/16 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
Angular.JS去掉访问路径URL中的#号详解
2017/03/30 Javascript
AngularJS双向绑定和依赖反转实例详解
2017/04/15 Javascript
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
小程序开发基础之view视图容器
2018/08/21 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
JS+CSS实现3D切割轮播图
2020/03/21 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
python自动化测试实例解析
2014/09/28 Python
Flask框架的学习指南之用户登录管理
2016/11/20 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
伦敦的高级牛仔布专家:Trilogy
2018/08/06 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
什么是反射
2012/03/17 面试题
自荐书模板
2013/12/19 职场文书
企业演讲稿范文
2013/12/28 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
活动简报范文
2015/07/22 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
left join、inner join、right join的区别
2021/04/05 MySQL