PEAR裡的HTML_Template_IT是一個簡單而且容易使用的類。 ********** 建立一個模板文件 **************** “符號”命名規則 為下面的正則表達式: {[0-9A-Za-z_-]+} ”塊“ 格式為下面的,塊名的命名規則和“符號”一樣的: ... 塊內容 ... 塊允許嵌套,你必須首先設置並分析最內層的塊,然後再設置和分析上一層的塊。 *********** 主要方法 *********** 構造函數: void IntegratedTemplate::IntegratedTemplate ([string $root = ""]) $root = 摸板根目錄 你也可以用 void IntegratedTemplate::setRoot (string $root) 方法設置模板目錄;該方法不能被靜態調用。 --------------------------------------------------------- 加載模板: boolean IntegratedTemplate::loadTemplatefile (string $filename, boolean [$removeUnknownVariables = TRUE], boolean [$removeEmptyBlocks = TRUE]) $filename = 模板文件名 $removeUnknownVariables = 設置是否移除未知的變量 $removeEmptyBlocks = 設置是否移除空塊 成功返回TRUE,失敗返回FALSE。 該方法不能被靜態調用 ------------------------------------------------------- 指定當前要處理的塊: boolean IntegratedTemplate::setCurrentBlock ([string $block = "__global"]) $block = 塊名 成功返回TRUE,失敗會返回一個PEAR_Error對象,裡面包含錯誤 描述。該方法不能被靜態調用。 ------------------------------------------------------- 用變量替換當前要處理的塊裡的“符號”: void IntegratedTemplate::setVariable (mixed $placeholder [, mixed $variable = ""]) $placeholder = 要替換的符號名,如果$variable是一個數組, 那就用符號名作為這個數組的索引並用這個索 引的數組元素的數據替換符號 $variable = 變量名或數組名 該函數不能被靜態調用 -------------------------------------------------------- 分析當前正處理的塊: void IntegratedTemplate::parseCurrentBlock () 失敗會返回一個PEAR_Error對象,裡面包含錯誤 描述。該方法不能被靜態調用。 --------------------------------------------------------- 處理完成輸出: void IntegratedTemplate::show ([string $block]) $block = 要返回的塊 如果沒設置$block,將返回完整的模板 ******************* 簡單示例(示例來自PEAR的在線手冊)***** Usage Example Example 25-1. main.tpl.htm模板文件,在"./templates"目錄下 {DATA} Example 25-2. PHP腳本 array("Stig", "Bakken"), "1" => array("Martin", "Jansen"), "2" => array("Alexander", "Merz") ); $tpl = new HTML_Template_IT("./templates"); $tpl->loadTemplatefile("main.tpl.htm", true, true); foreach($data as $name) { foreach($name as $cell) { // Assign data to the inner block $tpl->setCurrentBlock("cell") ; $tpl->setVariable("DATA", $cell) ; $tpl->parseCurrentBlock("cell") ; } // Assign data and the inner block to the // outer block $tpl->setCurrentBlock("row") ; $tpl->parseCurrentBlock("row") ; } // 輸出 $tpl->show(); ?> Example 25-3. 輸出 Stig Bakken Martin Jansen Alexander Merz ******************************************************* HTML_Template_IT裡面還有一個ITX類,可以完成更加復雜的功能, 繼承自IT類;ITX。PHP文件的原代碼裡包含了這個類的方法說明。 關於HTML_Template_IT其他方法的詳細說明請參見PEAR的手冊,地址為 http://pear.php.net/manual/en/package.html.html-template-it.php --希望大家能好好利用PEAR這個庫寫出更多更好的PHP程序!--