用PHP生成静态HTML速度快类库

  

复制代码 代码如下:

  ob_start();#开启服务器缓存

  include_once 'Index.php';

  $ctx=ob_get_contents();# 获取缓存

  ob_end_clean();#清空缓存

  $fh=fopen("index.html","w+");

  fwrite($fh,$ctx);# 写入html,生成html

  fclose($fh);

  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])

  

复制代码 代码如下:

  <?php

  ///////////////////////////////////////////////////////////////////////////////

  //

  // 张树林 - 慧佳工作室

  //

  // Module Name: woods-bhtml.php

  // Abstract: 生成静态HTML处理程序尾底

  // Version: 2.0

  // Date 1006-11-25

  // Author: woods·zhang

  // Website: http://www.hoojar.com/

  // Email: [email protected]

  // MSN: [email protected]

  // Copyright 1001-1006, Hoojar studio All Rights Reserved

  //

  // 版权 1001-1006,慧佳工作室所有版权保护

  //The software for free software, allowing use, copy,

  //modify and distribute the software and files. Any

  //use of this software must place a copy of all the

  //above copyright notice. By the software Huijia studio

  //maintenance, if you have any queries please contact us.

  //Thank you.

  //

  //此软件为自由软件,允许使用、拷贝、修改、分发本软件及其文档。

  //任何使用此软件的地方都得出现以上版权通告所有副本。此软件由

  //慧佳工作室维护,如果您有什么疑问请与我们联系。谢谢使用。

  //

  ///////////////////////////////////////////////////////////////////////////////

  //此文件只能加载在程序的最尾

  /*________________生成HTML文件______________________beign________________________________*/

  if ($make_html)

  {

  $buffer = ob_get_flush();

  if ($go_html)//是否直接转到HTML文件显示还是PHP读得内容输出(0:php读内容输出1:直接转)

  {

  /*__________处理因生成了HTML文件而产生的种径问题____________________begin_______________*/

  $search = array(

  "/(src=|action=|href=|ajaxRead\()\"/ie",

  "/\.\.\./e",

  "/\.\/\./e",

  "/\.\.\/http:\/\//ies",

  "/\.\.\/#/",

  "/\'\.\'/e",

  "/\.\.\/javascript:/ies");

  $replace = array(

  "'\\1\"../'",

  "'..'",

  "'.'",

  "'http://'",

  "#",

  "'\'..\''",

  "'javascript:'");

  $buffer = preg_replace($search, $replace, $buffer);

  /*__________处理因生成了HTML文件而产生的种径问题____________________end_______________*/

  }

  $fp = fopen(HTML_FILE, "w");

  if ($fp)

  {

  fwrite($fp, $buffer);

  fclose($fp);

  }

  }

  /*________________生成HTML文件______________________beign________________________________*/

  ?>

  <?php

  ///////////////////////////////////////////////////////////////////////////////

  //

  // 张树林 - 慧佳工作室

  //

  // Module Name: woods-thtml.php

  // Abstract: 生成静态HTML处理程序头

  // Version: 2.0

  // Date 1006-11-25

  // Author: woods·zhang

  // Website: http://www.hoojar.com/

  // Email: [email protected]

  // MSN: [email protected]

  // Copyright 1001-1006, Hoojar studio All Rights Reserved

  //

  // 版权 1001-1006,慧佳工作室所有版权保护

  //The software for free software, allowing use, copy,

  //modify and distribute the software and files. Any

  //use of this software must place a copy of all the

  //above copyright notice. By the software Huijia studio

  //maintenance, if you have any queries please contact us.

  //Thank you.

  //

  //此软件为自由软件,允许使用、拷贝、修改、分发本软件及其文档。

  //任何使用此软件的地方都得出现以上版权通告所有副本。此软件由

  //慧佳工作室维护,如果您有什么疑问请与我们联系。谢谢使用。

  //

  ///////////////////////////////////////////////////////////////////////////////

  //此文件只能加载在程序的开头

  ob_start();

  /*___________判断是否已生成了HTML文件,若生成了则跳转到HTML页面___________begin__________*/

  $qstring = isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : "";

  if ($qstring)//程序加了GET请求的处理

  {

  $qstring = str_replace("=", "", $qstring);

  define("HTML_FILE", "./h/{$efilename}-{$qstring}.html");

  }

  else

  {

  define("HTML_FILE", "./h/{$efilename}.html");

  }

  if (file_exists(HTML_FILE))

  {

  $lcft = filemtime(HTML_FILE);//last create file time

  if (($lcft + 3600) > time())//判断上次生成HTML文件是否以过去1时间,若没有才直接输出文件内容

  {

  if ($show_html)//是否以HTML静态页面展示(0不以HTML展显1以html展显)

  {

  if ($go_html)//是否直接转到HTML文件显示还是PHP读得内容输出(0:php读内容输出1:直接转)

  {

  header("Location: " . HTML_FILE);//直接转

  }

  else

  {

  echo(file_get_contents(HTML_FILE));//读出展显

  }

  exit(0);

  }

  }

  }

  /*___________判断是否已生成了HTML文件,若生成了则跳转到HTML页面___________end__________*/

  ?>

  <?php

  ///////////////////////////////////////////////////////////////////////////////

  //

  // 张树林 - 慧佳工作室

  //

  // Module Name: index.php

  // Abstract: 首页信息

  // Version: 1.0

  // Date 2006-11-7

  // Author: woods·zhang

  // Website: http://www.hoojar.com/

  // Cemail: [email protected]

  // MSN: [email protected]

  // Copyright 2001-2006, Hoojar studio All Rights Reserved

  //

  // 版权 2001-2006,慧佳工作室所有版权保护

  //The software for free software, allowing use, copy,

  //modify and distribute the software and files. Any

  //use of this software must place a copy of all the

  //above copyright notice. By the software Huijia studio

  //maintenance, if you have any queries please contact us.

  //Thank you.

  //

  //此软件为自由软件,允许使用、拷贝、修改、分发本软件及其文档。

  //任何使用此软件的地方都得出现以上版权通告所有副本。此软件由

  //慧佳工作室维护,如果您有什么疑问请与我们联系。谢谢使用。

  //

  ///////////////////////////////////////////////////////////////////////////////

  require("woods-thtml.php");//生成HTML处理头

  //if (count($_GET) < 1 && count($_POST) < 1){require("woods-thtml.php");}//生成HTML处理头

  require("{$exec_file}");//注册语言定义文件

  foreach ($lang as $key => $value)

  {

  $atpl[strtoupper($key) ."_LANG"] = $value;

  }

  /*____________________________________列表常识向上走的项__________________end_____________________*/

  include("woods-templates.php");

  $tpl = new WoodsTpl("./templates/");

  $tpl->require_tpl("header.html");

  $tpl->set_file();

  $tpl->block("EBCORP", $scorp);

  $tpl->block("NEWS", $news);

  $tpl->block("PRODUCT", $product);

  $tpl->block("EBPNAME_MSG", $spname);

  $tpl->block("LORE", $lore);

  $tpl->require_tpl("footer.html");

  $tpl->parse($atpl, true);

  $tpl = NULL;

  /*________________模板操作_________________________end___________________________________*/

  require("woods-bhtml.php");//生成HTML处理尾

  ?>