用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
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
Mar 07 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 PHP
PHP 中检查或过滤IP地址的实现代码
Nov 27 PHP
php include和require的区别深入解析
Jun 17 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
ThinkPHP查询语句与关联查询用法实例
Nov 01 PHP
PHP使用flock实现文件加锁的方法
Jul 01 PHP
php array_key_exists() 与 isset() 的区别
Oct 24 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
phpstudy2020搭建站点的实现示例
Oct 30 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 裁剪图片成固定大小代码方法
2009/09/09 PHP
PHP多线程抓取网页实现代码
2010/07/22 PHP
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
User Scripts: Video Download by User Scripts
2007/05/14 Javascript
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
将JSON字符串转换成Map对象的方法
2016/11/30 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
vue将时间戳转换成自定义时间格式的方法
2018/03/02 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
2018/03/02 Javascript
小程序实现发表评论功能
2018/07/06 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
Python中tell()方法的使用详解
2015/05/24 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
工作的心得体会
2013/12/31 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
高中政治教学反思
2016/02/23 职场文书
golang import自定义包方式
2021/04/29 Golang