用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 相关文章推荐
PHP 高手之路(一)
Oct 09 PHP
很好用的PHP数据库类
May 27 PHP
php上传文件的增强函数
Jul 21 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
用mysql_fetch_array()获取当前行数据的方法详解
Jun 05 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
PHP防范SQL注入的具体方法详解(测试通过)
May 09 PHP
php修改文件上传限制方法汇总
Apr 07 PHP
php生成固定长度纯数字编码的方法
Jul 09 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
Dec 18 PHP
php中__toString()方法用法示例
Dec 07 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 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写MySQL数据 实现代码
2009/06/15 PHP
Web程序工作原理详解
2014/12/25 PHP
php实现socket推送技术的示例
2017/12/20 PHP
jQuery 解析xml文件
2009/08/09 Javascript
jQuery 事件队列调整方法
2009/09/18 Javascript
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
2015/01/09 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
vue实现留言板todolist功能
2017/08/16 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
[01:00:30]TFT vs VGJ.T Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
python的re模块使用方法详解
2019/07/26 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
2020/03/02 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
Structs界面控制层技术
2013/10/11 面试题
餐饮加盟计划书
2014/01/10 职场文书
霸王洗发水广告词
2014/03/14 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
初一英语教学反思
2016/02/15 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL