PHP动态网页实现静态HTML技术的方法实现

<?php
/*____生成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
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
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处理尾
?>

转自:http://www.webjx.com/htmldata/2007-06-06/1181062841.html

动态更新html网页,与 Php分离html 应该跟以上操作相同。

posted @ 2013-05-07 14:59  stma  阅读(249)  评论(0编辑  收藏  举报