用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 相关文章推荐
基于mysql的论坛(2)
Oct 09 PHP
粗略计算在线时间,bug:ip相同
Dec 09 PHP
php 分页函数multi() discuz
Jun 21 PHP
php 归并排序 数组交集
May 10 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 PHP
PHP 反射(Reflection)使用实例
May 12 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
Symfony2联合查询实现方法
Mar 18 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
Feb 04 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
Feb 08 PHP
yii框架使用分页的方法分析
Jul 25 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邮件发送,php发送邮件的类
2011/03/24 PHP
JS 文件传参及处理技巧分析
2010/05/13 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
自己实现ajax封装示例分享
2014/04/01 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
JavaScript创建对象的方式小结(4种方式)
2015/12/17 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
学习node.js 断言的使用详解
2019/03/18 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
vue服务端渲染操作简单入门实例分析
2019/08/28 Javascript
Python 深入理解yield
2008/09/06 Python
python修改操作系统时间的方法
2015/05/18 Python
Python使用django搭建web开发环境
2017/06/09 Python
python3 读写文件换行符的方法
2018/04/09 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
keras导入weights方式
2020/06/12 Python
一个入门级python爬虫教程详解
2021/01/27 Python
浅析与CSS3的loading动画加载相关的transition优化
2015/05/18 HTML / CSS
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
STRATHBERRY苏贝瑞包包官网:西班牙高级工匠手工打造
2020/11/10 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
2014年教师培训的自我评价
2014/01/03 职场文书
小学生期末评语
2014/04/21 职场文书
白酒营销策划方案
2014/08/17 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
小学中队委竞选稿
2015/11/20 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
写好Python代码的几条重要技巧
2021/05/21 Python
python四种出行路线规划的实现
2021/06/23 Python