用PHP生成静态HTML速度快类库
程序员文章站
2023-12-27 18:40:57
...
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 /////////////////////////////////////////////////////////////////////////////// // //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: hoojar@53.com // MSN: hoojar@hotmail.com // 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: hoojar@163.com // MSN: hoojar@hotmail.com // 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处理尾 ?>
更多用PHP生成静态HTML速度快类库相关文章请关注PHP中文网!