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

(0)

相关推荐

  • PHP中实现生成静态文件的方法缓解服务器压力

    互联网快速普及的现在社会,越来越多的人会在一个web应用上进行交流,因而导致服务器与数据库访问压力与日俱增,这边就需要进行一些优化,譬如增加缓存.二级缓存.动态网页静态化以及其他的高端技术. 此处作者是使用生成静态文件的方法: 复制代码 代码如下: /** * @desc 生成静态文件时使用 * @todo htmlcache * @param $root string html文件存放路径 * @param $rule string html文件命名规则 * @param $url strin

  • 解析PHP生成静态html文件的三种方法

    本文将介绍Php 生成静态html文件的三种方法 .1,下面使用模版的一个方法! 复制代码 代码如下: <?php $fp = fopen ("templets.html","a"); if ($fp){ $fup = fread ($fp,filesize("templets.html")); $fp2 = fopen ("html.shtml","w"); if ($fwrite ($fp2,$f

  • 利用PHP生成静态HTML文档的原理

    给出代码: 复制代码 代码如下: <?php //引入数据库配置文件 include( dirname(dirname(__FILE__))."\include\config.php" ); /** * * 将数据库中的文章生成单个HTML文件. * @param Date $Date * @param Time $Time * @param String $Content * @param String $Title */ function GenerateHTML($Date

  • php将数据库中所有内容生成静态html文档的代码

    复制代码 代码如下: <?php /* author:www.5dkx.com done:生成html文档 date:2009-10-27 */ require_once("conn.php"); if($_GET['all']) { /*获取数据库记录,以便于生成html文件有个文件名*/ $sqlquery = "select * from $tbname"; $result = mysql_query($sqlquery,$conn)or die(&qu

  • php添加文章时生成静态HTML文章的实现代码

    PHP生成静态文章HTML,有批量的生成,但比较标准的应该是在添加文章时就生成HTML文章,编辑时再重新生成HTML文章,删除文章时同样也样删除多余出来的HTML文章,这时批量生成就显得有点力不从心了,下面就介绍一下PHP在添加文章时如何生成静态的HTML文件. 简单的添加文章表单这里就不写了,下面的这些源码是接受表单传过来的值而执行的程序源码,可以先拿过去测试一下... 复制代码 代码如下: <?php ob_start(); require_once("../inc/conn.php&

  • php 生成静态页面的办法与实现代码详细版

    php中主要用到的就是要用到fread()和fwirte().而静态页面生成了之后,就会牵扯到修改的问题.这里可以用到正则匹配的方法来替换模版中改变的部位.不过此种方法太麻烦,值得推荐的方法是直接把原来生成的模版砍掉,重新生成,呵呵,真正的一了百了. 还需要说明的一点就是,这种生成静态页面的方法一般都用于那些变化不是很频繁的页面,比如信息的最终页面.而针对列表页,如果信息更新不是很频繁的话,也是可取的.现在网上流行好多可以生成静态页面的blog或者论坛程序,都是通过手动点击后台"生成html页&

  • PHP定时自动生成静态HTML的实现代码

    但定时生成就受到了一些局限性,大家如果有独立服务器的能在服务器上设置计划任务,但如果是使用虚拟主机的可就不好办了.虽然方法非常多.但使用起来简便容易的,我觉得还是先判断已生成的首页文件的生成时间和现有时间之间的差值,如果满足某个值就开始生成这种方法比较来得容易.不多说了.开始吧! 网上找到的,记一下.实践证明,可用. 复制代码 代码如下: <?php $nowtime=time(); $pastsec = $nowtime – $_GET["t"]; if($pastsec<

  • 通用PHP动态生成静态HTML网页的代码

    我们知道,PHP读取MYSQL动态显示,在访问量大的情况下,会有很多性能问题,如果租用别人的虚拟主机,则会因为CPU消耗过多而被限制CPU,导致网页无法访问.我这里给出一个PHP动态生成HTML的方法,可以极大降低服务器CPU负荷. 首先设置.htaccess文件,将动态调用的参数转换为静态的HTML的URL地址,例如将在post目录下的文件,转发到根目录的wp-post.php文件中,加入的语句类似: RewriteRule ^post/([a-z0-9\-]+\.html)$ wp-post

  • 基于PHP生成静态页的实现方法

    t1.php 复制代码 代码如下: <?php// 方法一根据模版生成静态页面// replaceTemplateString函数用于替换模板中指定字符串function replaceTemplateString($templateString) {    // 用来替换的变量    $title = "文章标题";    $body = "这里是文章主体";    // 替换模板中指定字符串    $showString = str_replace ( &

  • 比较详细PHP生成静态页面教程

    一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合,也可以类,函数封装等形式,以模板的方式对用户请求进行处理.无论以何种方式,它的基本原理是这样的.由客户端提出请求,请求某一页面 -----> WEB服务器引入指定相应脚本进行处理 -----> 脚本被载入服务器 -----> 由服务器指定的PHP解析器对脚本进行解析形成HTML语言形式 ----> 将解析后的HTML语句以包的方式传回给浏览器.由此不难看出,在页面发送到浏览器后,PHP

  • 用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() 说明:这个函数经常使用,效率很高.

  • PHP 动态生成静态HTML页面示例代码

    temp.html 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-eq

  • php生成静态文件的多种方法分享

    第一种:将php动态页面内容生成静态 复制代码 代码如下: 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

  • 生成静态页面的php函数,php爱好者站推荐

    复制代码 代码如下: <?php  function CreateShtml()  {  ob_start("callback_CteateShtml");  }  function callback_CteateShtml($buffer)  {  $page = intval(@$_REQUEST["page"]);  //$fileName = $_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF'

随机推荐