GONE WITH THE WIND

          --tomorrow is another day

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            30 隨筆 :: 19 文章 :: 0 評論 :: 0 Trackbacks
          使用PHP編程的人都會碰到這樣一個(gè)問題:當(dāng)PHP代碼和HTML代碼在一起的時(shí)候,看PHP代碼很費(fèi)勁,整個(gè)文件也無法用Dreamweaver來編輯,這對于PHP程序員和美工來講,修改這樣的文件就象一個(gè)噩夢。
          PHP中的模板(Template)技術(shù)就是為了解決這個(gè)問題而出現(xiàn)的。PHP模板類有很多,比較常見的是 FastTemplate 和 PHPLib, 因?yàn)槌霈F(xiàn)得早,在PHP編程界名聲很大。PHP程序員不知道這兩個(gè)類,就象VB程序員不知道MsgBox函數(shù)一樣,是一件不可思議的事情。
          以前我們需要去下載PHP模板類,現(xiàn)在PHP4有了自己的模板類 IntegratedTemplate 和 IntegratedTemplateExtension,功能和PHPLib 差不多。這兩個(gè)類是子類和父類的關(guān)系。一般我們用 IntegratedTemplateExtension 就可以了。讓人感到不可思議的是 IntegratedTemplate 不是從 PEAR 類繼承過來,無法用到 PEAR 類的 debug 功能。
          以下舉例子說明它們的用法,假設(shè) 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 上設(shè)成虛擬目錄 /testphp 并且給與腳本執(zhí)行權(quán)限,確認(rèn)C:\TestPHP\HTML\Welcome.htm 無法通過遠(yuǎn)端瀏覽器訪問。在 php.ini 里面設(shè)置 include_path = ".;C:\php4\pear"
          例1:
          我們在HTML文件中放置變量的標(biāo)記,用PHP代碼設(shè)置變量的值,然后將HTML中的標(biāo)記替換掉,最后輸出到客戶瀏覽器。
          以下是 Welcome.htm 代碼,我們放了三個(gè)PHP tag(變量標(biāo)記)為: {WelcomeTitle}、{UserName}、{WelcomeMessage}



          您好,{UserName}


          {WelcomeMessage}



          以下是Welcome.php代碼
          <?php
          require_once "HTML/ITX.php";

          //以下是給變量賦值,在實(shí)際代碼中可能從Database中取得數(shù)據(jù)然后賦值
          $WelcomeTitle = "歡迎來到網(wǎng)頁天堂";
          $UserName = "皮皮魯";
          $WelcomeMessage = "您的到來讓我們深感榮幸!";

          //一般來說這種全局變量放在單獨(dú)的一個(gè)文件中,便于維護(hù)
          $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 仍然可以使用網(wǎng)頁編輯器如Dreamweaver、FrontPage 進(jìn)行編輯,Welcome.php中是純粹的PHP代碼,不含HTML,方便以后的代碼修改和維護(hù)。
          如果將 IntegratedTemplateExtension 類和 PHP4中的 Cache 類 聯(lián)合使用,在速度上可以得到很好的效果。
          PHP4 模板類還可以使用 Block,配合其他 PHP4 中的類 可以很輕松地實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)檢索的翻頁,可以很輕松寫出論壇之類的軟件。

          補(bǔ)充說明:為了防止用戶直接用 Welcome.htm 看網(wǎng)頁,將 Welcome.htm 放在客戶訪問不到的目錄(只要不在Web Server 的虛擬目錄下即可)。對于大型的PHP項(xiàng)目,圖片、PHP代碼、HTML文件、多語言字符串文件都應(yīng)該放在不同的目錄,這樣在多人共同做一個(gè)項(xiàng)目時(shí)不至于混亂。
          posted on 2009-04-08 12:29 張永耀 閱讀(373) 評論(0)  編輯  收藏 所屬分類: web html css
          主站蜘蛛池模板: 崇明县| 玉龙| 繁昌县| 施秉县| 西华县| 门源| 寿光市| 襄汾县| 普定县| 晋城| 新建县| 白河县| 天柱县| 大关县| 兴义市| 麻城市| 九江县| 汤原县| 山阴县| 元谋县| 新蔡县| 政和县| 尚义县| 潼南县| 大洼县| 鄂伦春自治旗| 罗城| 巨野县| 关岭| 咸宁市| 卓尼县| 民县| 陇川县| 法库县| 宜阳县| 治县。| 榕江县| 漾濞| 渭南市| 石家庄市| 青田县|