用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代码
Jul 17 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
Jun 21 PHP
PHP时间格式控制符对照表分享
Jul 23 PHP
CentOS6.5 编译安装lnmp环境
Dec 21 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
Dec 24 PHP
PHP中使用BigMap实例
Mar 30 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
Mar 21 PHP
CI配置多数据库访问的方法
Mar 28 PHP
PHP+Ajax实现验证码的实时验证
Jul 20 PHP
PHP7中I/O模型内核剖析详解
Apr 14 PHP
PHP使用DOM对XML解析处理操作示例
Jul 04 PHP
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
Mar 29 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 APC缓存配置、使用详解
2014/03/06 PHP
给ECShop添加最新评论
2015/01/07 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
基于jQuery的history历史记录插件
2010/12/11 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
Javascript继承(上)——对象构建介绍
2012/11/08 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
JS取request值以及自动执行使用示例
2014/02/24 Javascript
nodejs实现的一个简单聊天室功能分享
2014/12/06 NodeJs
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
2016/09/19 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
对命令行模式与python交互模式介绍
2018/05/12 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
Python基础教程之异常详解
2019/01/10 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
2019/08/23 Python
python生成器用法实例详解
2019/11/22 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
python实现定时发送邮件
2020/12/23 Python
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
简历的自我评价
2014/02/03 职场文书
安全生产网格化管理实施方案
2014/03/01 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
单位考核鉴定意见
2015/06/05 职场文书
golang switch语句的灵活写法介绍
2021/05/06 Golang
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers