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

时间:2008-5-31    作者:Deri    分类: 分享


   <code><?php<br />/*____生成HTML文件________beign__________*/<br />if ($make_html)<br />{<br />    $buffer = ob_get_flush();<br />    if ($go_html)//是否直接转到HTML文件显示还是PHP读得内容输出(0:php读内容输出1:直接转)<br />    {<br />        /*__处理因生成了HTML文件而产生的种径问题______begin_______*/<br />        $search = array(<br />            "/(src=|action=|href=|ajaxRead()"/ie",<br />            "/.../e",<br />            "/././e",<br />            "/../http:///ies",<br />            "/../#/",<br />            "/'.'/e",<br />            "/../javascript:/ies");<br />$replace = array(<br />            "'1"../'",<br />            "'..'",<br />            "'.'",<br />            "'http://'",<br />            "#",<br />            "''..''",<br />            "'javascript:'");<br />        $buffer = preg_replace($search, $replace, $buffer);<br />        /*___处理因生成了HTML文件而产生的种径问题_____end_____*/<br />    }<br />$fp = fopen(HTML_FILE, "w");<br />    if ($fp)<br />    {<br />        fwrite($fp, $buffer);<br />        fclose($fp);<br />    }<br />}<br />/*_______生成HTML文件_________beign________*/<br />?><br /><?php<br />ob_start();<br />/*____判断是否已生成了HTML文件,若生成了则跳转到HTML页面___begin_____*/<br />$qstring = isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : "";<br />if ($qstring)//程序加了GET请求的处理<br />{<br />    $qstring = str_replace("=", "", $qstring);<br />    define("HTML_FILE", "./h/{$efilename}-{$qstring}.html");<br />}<br />else<br />{<br />    define("HTML_FILE", "./h/{$efilename}.html");<br />}<br />if (file_exists(HTML_FILE))<br />{<br />    $lcft = filemtime(HTML_FILE);//last create file time<br />    if (($lcft + 3600) > time())//判断上次生成HTML文件是否以过去1时间,若没有才直接输出文件内容<br />    {<br />        if ($show_html)//是否以HTML静态页面展示(0不以HTML展显1以html展显)<br />        {<br />            if ($go_html)//是否直接转到HTML文件显示还是PHP读得内容输出(0:php读内容输出1:直接转)<br />            {<br />                header("Location: " . HTML_FILE);//直接转<br />            }<br />            else<br />            {<br />                echo(file_get_contents(HTML_FILE));//读出展显<br />            }<br />            exit(0);<br />        }<br />    }<br />}<br />/*___判断是否已生成了HTML文件,若生成了则跳转到HTML页面_____end_____*/<br />?><br /><?php<br />require("woods-thtml.php");//生成HTML处理头<br />//if (count($_GET) < 1 && count($_POST) < 1){require("woods-thtml.php");}//生成HTML处理头<br />require("{$exec_file}");//注册语言定义文件<br />foreach ($lang as $key => $value)<br />{<br />    $atpl[strtoupper($key) ."_LANG"] = $value;<br />}<br />/*__________列表常识向上走的项_______end_______*/<br />include("woods-templates.php");<br />$tpl = new WoodsTpl("./templates/");<br />$tpl->require_tpl("header.html");<br />$tpl->set_file();<br />$tpl->block("EBCORP", $scorp);<br />$tpl->block("NEWS", $news);<br />$tpl->block("PRODUCT", $product);<br />$tpl->block("EBPNAME_MSG", $spname);<br />$tpl->block("LORE", $lore);<br />$tpl->require_tpl("footer.html");<br />$tpl->parse($atpl, true);<br />$tpl = NULL;<br />/*_____模板操作________end_____________*/<br />require("woods-bhtml.php");//生成HTML处理尾<br />?></code>