用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
mysql5详细安装教程
Jan 15 PHP
PHP 身份验证方面的函数
Oct 11 PHP
php smarty模版引擎中变量操作符及使用方法
Dec 11 PHP
解析mysql 表中的碎片产生原因以及清理
Jun 22 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
Oct 30 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
Dec 30 PHP
CodeIgniter视图使用注意事项
Jan 20 PHP
微信利用PHP创建自定义菜单的方法
Aug 01 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
May 12 PHP
php实现每日签到功能
Nov 29 PHP
PHP echo()函数讲解
Feb 15 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防盗链的常用方法小结
2010/07/02 PHP
zf框架的registry(注册表)使用示例
2014/03/13 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
php封装的mysqli类完整实例
2016/10/18 PHP
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
详解webpack 多页面/入口支持&amp;公共组件单独打包
2017/06/29 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
vue项目中api接口管理总结
2018/04/20 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
在weex中愉快的使用scss的方法步骤
2020/01/02 Javascript
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
使用python3实现操作串口详解
2019/01/01 Python
Python匿名函数及应用示例
2019/04/09 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
Python绘制动态水球图过程详解
2020/06/03 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
如何用Django处理gzip数据流
2021/01/29 Python
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
html5 offlline 缓存使用示例
2013/06/24 HTML / CSS
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
一年级小学生评语
2014/04/22 职场文书
2014年最新学校运动会广播稿
2014/09/17 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang