使用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:php4pearHTMLITX.php 和 C:php4pearHTMLITX.php 中。我們寫的代碼放在C:TestPHPPHP4Welcome.htm 和 C:TestPHPHTMLWelcome.php 中。將C:TestPHPPHP4 在Web Server 上設成虛擬目錄 /testphp 並且給與腳本執行權限,確認C:TestPHPHTMLWelcome.htm 無法通過遠端浏覽器訪問。在 php.ini 裡面設置 include_path = ".;C:php4pear"
例1:
我們在HTML文件中放置變量的標記,用PHP代碼設置變量的值,然後將HTML中的標記替換掉,最後輸出到客戶浏覽器。
以下是 Welcome.htm 代碼,我們放了三個PHP tag(變量標記)為: {WelcomeTitle}、{UserName}、{WelcomeMessage}
{WelcomeTitle} 您好,{UserName}
{WelcomeMessage}
以下是Welcome.php代碼
require_once "HTML/ITX.php";
file://以下是給變量賦值,在實際代碼中可能從Database中取得數據然後賦�
$WelcomeTitle = "歡迎來到網頁天堂";
$UserName = "皮皮�";
$WelcomeMessage = "您的到來讓我們深感榮幸!";
file://一般來說這種全局變量放在單獨的一個文件中,便於維�
$HTML_CODE_FILE_ROOT = "../HTML/";
$tpl = new IntegratedTemplateExtension($HTML_CODE_FILE_ROOT);
file://指定要替� tag � HTML 文件
$tpl->loadTemplatefile("Welcome.htm");
file://替換HTML 文件中的 tag
$tpl->setVariable( array (
"WelcomeTitle" => $WelcomeTitle,
"UserName" =>$UserName,
"WelcomeMessage" =>$WelcomeMessage
) );
file://輸出替換後的 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文件、多語言字符串文件都應該放在不同的目錄,這樣在多人共同做一個項目時不至於混亂�