可使用一品威客账号登录: 登录 立即注册
热搜: 活动 交友 discuz

PHP将整个网站生成HTML纯静态网页的方法

查看: 1589 | 回复: 0  一枝梅 发表于 2012-4-12 09:32:41

  生成HTML纯静态网页,代码如下:
  <?php
  //在你的开始处加入 ob_start();
  ob_start();
  //以下是你的代码
  //在结尾加入 ob_end_clean(),并把本页输出到一个变量中
  $temp = ob_get_contents();
  ob_end_clean();
  //写入文件
  $fp = fopen(‘文件名','w');
  fwrite($fp,$temp) or die(‘写文件错误');
  ?>
  这只是最基本的方法,还不是很实用,因为网站是要更新的,要定期重新生成HTML
  下面是我用的方法:
  复制代码 代码如下:
  if(file_exists(“xxx.html”))
  {
  $time = time();
  //文件修改时间和现在时间相差半小时一下的话,直接导向html文件,否则重新生成html
  if($time - filemtime(“xxx.html”) < 30*60)
  {
  header(“Location:xxx.html”);
  }
  }
  //在你的开始处加入 ob_start();
  ob_start();
  //页面的详细内容
  //在结尾加入 ob_end_clean(),并把本页输出到一个变量中
  $temp = ob_get_contents();
  ob_end_clean();
  //写入文件
  $fp = fopen(‘xxx.html','w');
  fwrite($fp,$temp) or die(‘写文件错误');
  //重新导向
  header(“Location:xxx.html”);

  下面是一些用到的函数的介绍:
  1、Flush:刷新缓冲区的内容,输出。
  函数格式:flush()
  说明:这个函数经常使用,效率很高。

  2、ob_start :打开输出缓冲区
  函数格式:void ob_start(void)
  说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。

  3 、ob_get_contents :返回内部缓冲区的内容。
  使用方法:string ob_get_contents(void)
  说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。

  4、ob_get_length:返回内部缓冲区的长度。
  使用方法:int ob_get_length(void)
  说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。

  5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。
  使用方法:void ob_end_flush(void)
  说明:这个函数发送输出缓冲区的内容(如果有的话)。

  6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区
  使用方法:void ob_end_clean(void)
  说明:这个函数不会输出内部缓冲区的内容而是把它删除!

  7、ob_implicit_flush:打开或关闭绝对刷新
  使用方法:void ob_implicit_flush ([int flag])
  说明:使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush().




厦门礼品包装设计 http://imyyshow.epweike.com/
厦门画册设计 http://fun181.epweike.com
厦门市品牌设计shop.epweike.com/4121451/

使用道具 举报

快速回复
登录后回帖,可以用一品威客账号登录 登录 | 立即注册

一品微博
一品活动
2024线上私享会
2024.3.21,一品威客2024创业领袖线上私享会将火热开播。
新粉福利社
【新粉福利社】新用户最高可领Apple iPad
最新主题热门主题


回顶部
关注
我们
官方微信 官方微博

微信号:epweike
已经有超过10万小伙伴关注了!
更多精彩好玩的活动敬请关注微信公众号

加为关注

微博账号:一品威客网
更多精彩互动尽在一品官方微博
小编期待您的参与