使用PHP4中的 IntegratedTemplate類實現HTML和PHP代碼分離

來源:互聯網
上載者:User
使用PHP4中的 IntegratedTemplate類實現HTML和PHP代碼分離

     使用PHP編程的人都會碰到這樣一個問題:當PHP代碼和HTML代碼在一起的時候,看PHP代碼很費勁,整個檔案也無法用Dreamweaver來編輯,這對於PHP程式員和美工來講,修改這樣的檔案就象一個噩夢。
    PHP中的模板(Template)技術就是為瞭解決這個問題而出現的。PHP模板類有很多,比較常見的是 FastTemplate 和 PHPLib, 因為出現得早,在PHP編程界名聲很大。PHP程式員不知道這兩個類,就象VB程式員不知道MsgBox函數一樣,是一件不可思議的事情。
    以前我們需要去下載PHP模板類,現在PHP4有了自己的模板類 IntegratedTemplate 和 IntegratedTemplateExtension,功能和PHPLib 差不多。這兩個類是子類和父類的關係。一般我們用 IntegratedTemplateExtension 就可以了。讓人感到不可思議的是 IntegratedTemplate 不是從 PEAR 類繼承過來,無法用到 PEAR 類的 debug 功能。
    以下舉例子說明它們的用法,假設 IntegratedTemplate 類和 IntegratedTemplateExtension 類分別在 C:/php4/pear/HTML/ITX.php 和 C:/php4/pear/HTML/ITX.php 中。我們寫的代碼放在C:/TestPHP/PHP4/Welcome.htm 和 C:/TestPHP/HTML/Welcome.php 中。將C:/TestPHP/PHP4 在Web Server 上設成虛擬目錄 /testphp 並且給與指令碼執行許可權,確認C:/TestPHP/HTML/Welcome.htm 無法通過遠端瀏覽器訪問。在 php.ini 裡面設定 include_path = ".;C:/php4/pear"
    例1:
    我們在HTML檔案中放置變數的標記,用PHP代碼設定變數的值,然後將HTML中的標記替換掉,最後輸出到客戶瀏覽器。
    以下是 Welcome.htm 代碼,我們放了三個PHP tag(變數標記)為: {WelcomeTitle}、{UserName}、{WelcomeMessage}
        <html>
        <head>
        <title>{WelcomeTitle}</title>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
        <style type="text/css">
        <!--
        body,p,br,div,td,table {  font-size: 9pt}
        -->
        </style>
        </head>
       
        <body bgcolor="#FFFFFF" text="#000000">
        <p align="center">您好,{UserName}</p>
        <p align="center">{WelcomeMessage} </p>
        </body>
        </html>

    以下是Welcome.php代碼
        <?php
        require_once "HTML/ITX.php";
        
       //以下是給變數賦值,在實際代碼中可能從Database中取得資料然後賦值
        $WelcomeTitle = "歡迎來到網頁天堂";
        $UserName = "皮皮魯";
        $WelcomeMessage = "您的到來讓我們深感榮幸!";
        
        //一般來說這種全域變數放在單獨的一個檔案中,便於維護
        $HTML_CODE_FILE_ROOT = "../HTML/";
       
        $tpl = new IntegratedTemplateExtension($HTML_CODE_FILE_ROOT);
        
        指定要替換 tag 的 HTML 檔案
        $tpl->loadTemplatefile("Welcome.htm");
       
        替換HTML 檔案中的 tag
        $tpl->setVariable( array (
            "WelcomeTitle" => $WelcomeTitle,
            "UserName" =>$UserName,
            "WelcomeMessage"  =>$WelcomeMessage
            ) );
       
        輸出替換後的 HTML
        $tpl->show();
        ?>
   
    這樣寫好後,Welcome.htm 仍然可以使用網頁編輯器如Dreamweaver、FrontPage 進行編輯,Welcome.php中是純粹的PHP代碼,不含HTML,方便以後的代碼修改和維護。
    如果將 IntegratedTemplateExtension 類和 PHP4中的 Cache 類 聯合使用,在速度上可以得到很好的效果。
    PHP4 模板類還可以使用 Block,配合其他 PHP4 中的類 可以很輕鬆地實現資料庫資料檢索的翻頁,可以很輕鬆寫出論壇之類的軟體。

    補充說明:為了防止使用者直接用 Welcome.htm 看網頁,將 Welcome.htm 放在客戶訪問不到的目錄(只要不在Web Server 的虛擬目錄下即可)。對於大型的PHP項目,圖片、PHP代碼、HTML檔案、多語言字串檔案都應該放在不同的目錄,這樣在多人共同做一個項目時不至於混亂。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.