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


Posted in PHP onMarch 18, 2007
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: 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. 
// 
//此软件为自由软件,允许使用、拷贝、修改、分发本软件及其文档。 
//任何使用此软件的地方都得出现以上版权通告所有副本。此软件由 
//慧佳工作室维护,如果您有什么疑问请与我们联系。谢谢使用。 
// 
/////////////////////////////////////////////////////////////////////////////// 
//此文件只能加载在程序的最尾 
/*________________生成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 相关文章推荐
PHPlet在Windows下的安装
Oct 09 PHP
IIS下配置Php+Mysql+zend的图文教程
Dec 08 PHP
一个捕获函数输出的函数
Feb 14 PHP
php xml 入门学习资料
Jan 01 PHP
thinkphp文件处理类Dir.class.php的用法分析
Dec 08 PHP
PHP简单选择排序算法实例
Jan 26 PHP
php.ini中的request_order推荐设置
May 10 PHP
php实现无限级分类查询(递归、非递归)
Mar 10 PHP
php版微信返回用户text输入的方法
Nov 14 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 PHP
基于ThinkPHP删除目录及目录文件函数
Oct 28 PHP
PHP实现采集程序原理和简单示例代码
Mar 18 #PHP
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 #PHP
dedecms模板标签代码官方参考
Mar 17 #PHP
收集的DedeCMS一些使用经验
Mar 17 #PHP
dedecms防止FCK乱格式化你的代码的修改方法
Mar 17 #PHP
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 #PHP
php中文本操作的类
Mar 17 #PHP
You might like
php array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
PHP输出数组中重名的元素的几种处理方法
2012/09/05 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
php实现的替换敏感字符串类实例
2014/09/22 PHP
Linux中为php配置伪静态
2014/12/17 PHP
php格式化金额函数分享
2015/02/02 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
XML的代替者----JSON
2007/07/21 Javascript
jquery中this的使用说明
2010/09/06 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
javascript 应用小技巧方法汇总
2015/07/05 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
2017/02/04 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
TensorFlow 合并/连接数组的方法
2018/07/27 Python
Django重设Admin密码过程解析
2020/02/10 Python
python字典key不能是可以是啥类型
2020/08/04 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
对于没有初始化的变量的初始值可以作怎样的假定
2014/10/12 面试题
护士自荐信怎么写
2013/10/18 职场文书
路政管理专业个人自荐信范文
2013/11/30 职场文书
幸福家庭事迹材料
2014/02/03 职场文书
春节超市活动方案
2014/08/14 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
单位车辆管理制度
2015/08/05 职场文书
2016寒假假期总结
2015/10/10 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript
永中文档在线转换预览基于nginx配置部署方案
2022/06/10 Servers
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python