用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 和 MySQL 基础教程(一)
Oct 09 PHP
不用数据库的多用户文件自由上传投票系统(1)
Oct 09 PHP
AJAX的跨域访问-两种有效的解决方法介绍
Jun 22 PHP
PHP实现HTML生成PDF文件的方法
Nov 07 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
PHP实现简单的新闻发布系统实例
Jul 28 PHP
详解Yii2 rules 的验证规则
Dec 02 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
php之可变变量的实例详解
Sep 12 PHP
PHP实现的简单组词算法示例
Apr 10 PHP
PHP使用OB缓存实现静态化功能示例
Mar 23 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 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
使用无限生命期Session的方法
2006/10/09 PHP
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
全面解读PHP的人气开发框架Laravel
2015/10/15 PHP
php实现登陆模块功能示例
2016/10/20 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
基于原生js淡入淡出函数封装(兼容IE)
2016/10/20 Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
2016/12/21 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Python 循环语句之 while,for语句详解
2018/04/23 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
你常见到的runtime exception
2016/09/05 面试题
电子商务专业自我鉴定
2013/12/18 职场文书
建筑工程毕业生自我鉴定
2014/01/14 职场文书
写给爸爸的道歉信
2014/01/15 职场文书
《诺贝尔》教学反思
2014/02/17 职场文书
图书馆标语
2014/06/19 职场文书
建设工程授权委托书
2014/09/22 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
银行文明优质服务培训心得体会
2016/01/09 职场文书
Java设计模式之享元模式示例详解
2022/03/03 Java/Android