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

复制代码 代码如下:

  <?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处理尾

  ?>