Discuz教程网

用php的ob_start来生成静态页面的方法分析

[复制链接]
authicon dly 发表于 2011-3-14 09:10:24 | 显示全部楼层 |阅读模式
虽然方法很多,但使用起来简便容易的,我觉得还是先判断已经生成的首页文件的生成时间和现有时间之间的差值,如果满足某个值就开始生成,这种方法比较来得容易,不多说了,开始吧!
在开始之前还是提一下三个函数吧:"ob_start()、ob_end_clean()、ob_get_contents()"
ob_start():是打开缓冲区的,就是要把您需要生成的静态文件的内容缓存在这里;
ob_get_contents():是读出缓冲区里的内容,下面有代码为例;
ob_end_clean():这个比较重要,只有使用了这个函数后,缓冲区里的内容才会读取出来;复制内容到剪贴板代码:
代码如下:


  1. if(file_exists("./index.htm"))//看静态index.htm文件是否存在
  2. {
  3. $time=time(); //文件修改时间和现在时间相差?的话,直接导向htm文件,否则重新生成htm
  4. if($time-filemtime("./index.htm")< 600)
  5. {
  6. header("Location:classhtml/main.htm"); }
  7. }
  8. //在你的开始处加入ob_start();CHINAZ
  9. //首页内容,就是你的动态部分了
  10. //在结尾加入ob_end_clean(),并把本页输出到一个变量中
  11. $temp=ob_get_contents();
  12. ob_end_clean();
  13. //写入文件
  14. $fp=fopen("./index.htm",'w');
  15. fwrite($fp,$temp) or die('写文件错误');
  16. //echo"生成HTML完成!";
复制代码


实例代码:
代码如下:



  1. <?php
  2. ob_start();
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. <title><?php echo '编程导航 dh.jb51.net';?></title>
  9. </head>
  10. <body>
  11. <?php echo "dh.jb51.net";?>
  12. </body>
  13. </html>
  14. <?php
  15. $cacheStr=ob_get_contents();
  16. $handle=fopen("jb51.html","w");
  17. fwrite($handle, $cacheStr);
  18. ob_clean();
  19. ?>
复制代码






上一篇:你想知道他和(她)的电话和短信内容信息吗?
下一篇:PHP用GD库生成高质量的缩略图片
authicon fantuanzi 发表于 2011-5-23 17:59:51 | 显示全部楼层
这个贴不错!!!
authicon melody0721 发表于 2011-5-28 08:59:34 | 显示全部楼层
感谢分享  收下了·····
authicon lanyuqing 发表于 2011-6-16 13:00:05 | 显示全部楼层
这个还是不错的!
authicon kurt226 发表于 2011-6-22 06:02:55 | 显示全部楼层
支持楼主,顶一下
authicon Cute宝贝儿 发表于 2011-6-23 16:00:19 | 显示全部楼层
好耶!功能强大啊
authicon 馥郁渊汀 发表于 2011-6-24 19:00:02 | 显示全部楼层
前来看看那
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-3 03:38

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表