用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 Ajax乱码
Apr 09 PHP
PHP 加密与解密的斗争
Apr 17 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
PHP小程序自动提交到自助友情连接
Nov 24 PHP
Search File Contents PHP 搜索目录文本内容的代码
Feb 21 PHP
PHP设计模式 注册表模式
Feb 05 PHP
php smarty模板引擎的6个小技巧
Apr 24 PHP
VPS中使用LNMP安装WordPress教程
Dec 28 PHP
WordPress中缩略图的使用以及相关技巧
Nov 24 PHP
PHP远程调试之XDEBUG
Dec 29 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
Aug 02 PHP
PHP7内核之Reference详解
Mar 14 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
在PHP中读取和写入WORD文档的代码
2008/04/09 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
JavaScript 变量基础知识
2009/11/07 Javascript
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
jQuery 创建Dom元素
2010/05/07 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
seajs学习之模块的依赖加载及模块API的导出
2016/10/20 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
基于hashlib模块--加密(详解)
2017/06/21 Python
python将字典内容存入mysql实例代码
2018/01/18 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
python实现PCA降维的示例详解
2020/02/24 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
python定时截屏实现
2020/11/02 Python
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
个人求职简历的自我评价范文
2013/10/09 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
师德先进个人材料
2014/12/20 职场文书
清明节主题班会
2015/08/14 职场文书
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android