用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 相关文章推荐
ADODB结合SMARTY使用~超级强
Nov 25 PHP
在php和MySql中计算时间差的方法
Apr 22 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
Jun 25 PHP
php上传图片存入数据库示例分享
Mar 11 PHP
PHP对象相互引用的内存溢出实例分析
Aug 28 PHP
php查询操作实现投票功能
May 09 PHP
PHP中文字符串截断无乱码解决方法
Oct 10 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 PHP
Laravel框架搜索分页功能示例
Feb 01 PHP
PHP信号处理机制的操作代码讲解
Apr 19 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 和 XML: 使用expat函数(一)
2006/10/09 PHP
PHP使用DES进行加密与解密的方法详解
2013/06/06 PHP
PHP面向对象精要总结
2014/11/07 PHP
php生成圆角图片的方法
2015/04/07 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
2016/05/09 PHP
PHP 实现链式操作
2021/03/09 PHP
javascript删除option选项的多种方法总结
2013/11/22 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
javascript中this指向详解
2016/04/23 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
vue实现登陆登出的实现示例
2017/09/15 Javascript
vue解决使用$http获取数据时报错的问题
2019/10/30 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
微信小程序用canvas画图并分享
2020/03/09 Javascript
基于Python_脚本CGI、特点、应用、开发环境(详解)
2017/05/23 Python
python使用tkinter实现简单计算器
2018/01/30 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
Python3 jupyter notebook 服务器搭建过程
2018/11/30 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
UNIX操作系统结构由哪几部分组成
2016/02/17 面试题
中医专业应届生求职信
2013/11/17 职场文书
接受捐赠答谢词
2014/01/27 职场文书
生产部厂长职位说明书
2014/03/03 职场文书
公司董事长岗位职责
2014/06/08 职场文书
值班管理制度范本
2015/08/06 职场文书
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers