用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 大数据量及海量数据处理算法总结
May 07 PHP
php XMLWriter类的简单示例代码(RSS输出)
Sep 30 PHP
php中使用接口实现工厂设计模式的代码
Jun 17 PHP
基于PHP异步执行的常用方式详解
Jun 03 PHP
基于PHP array数组的教程详解
Jun 05 PHP
解决Codeigniter不能上传rar和zip压缩包问题
Mar 07 PHP
使用PHP函数scandir排除特定目录
Jun 12 PHP
Drupal简体中文语言包安装教程
Sep 27 PHP
php实现文本数据导入SQL SERVER
May 17 PHP
分享php分页的功能模块
Jun 16 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
Nov 09 PHP
PHP 年月日的三级联动实例代码
May 24 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结合表单实现一些简单功能的例子
2011/06/04 PHP
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
YII实现分页的方法
2014/07/09 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
浅谈Javascript变量作用域问题
2014/12/16 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
js中作用域的实例解析
2017/03/16 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
《Python学习手册》学习总结
2018/01/17 Python
Python实现按中文排序的方法示例
2018/04/25 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
详解Python中的分支和循环结构
2020/02/11 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
深入浅析HTML5中的SVG
2015/11/27 HTML / CSS
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
Python编写冷笑话生成器
2022/04/20 Python