PHPLIB Template 類庫支援主模板嵌入多個子模板,實現頁面頭尾、區塊複用。
third.html (主模板)
<!-- 頁面頭部 -->
<BODY> 下面是一個列表 <UL>
<!-- BEGIN list --> <li> 的成績是 <!-- END list -->
</UL> <!-- 頁面腳部 --> </BODY></HTML>
header.html (子模板)
<!DOCTYPE HTML...><HTML><HEAD><TITLE></TITLE></HEAD>
footer.html (子模板)
<P>author © iwind
require "inc/template.inc";
$tpl = new Template("template"); // 目錄
// 載入模板檔對應變數名
$tpl->set_file("main", "third.html");
$tpl->set_file("my_header", "header.html");
$tpl->set_file("my_footer", "footer.html");
// 解析子模板變數並嵌入主模板對應位置
$tpl->parse("header", "my_header"); // header.html 內容 → third.html 的 header 位置
$tpl->parse("footer", "my_footer"); // footer.html 內容 → third.html 的 footer 位置
// 解析主模板區塊 (list)
$tpl->set_block("main", "list", "lists");
$array = array("張三"=>82, "李四"=>90, "王二"=>60, "麻子"=>77);
foreach ($array as $username=>$score) {
$tpl->set_var("username", $username);
$tpl->set_var("score", $score);
$tpl->parse("lists", "list", true); // true = 累加模式
}
// 最終解析主模板並輸出
$tpl->parse("mains", "main");
$tpl->p("mains");
set_file(alias, filename):建立別名對應檔案。set_var(var, value):設定單一變數值。set_block(parent, block_name, alias):定義可重複區塊。parse(target, source, append):解析 source 變數/區塊,結果存入 target;append=true 累加內容。p(alias):輸出最終結果。子模板內變數 (如 title) 同樣用 set_var 設定。子模板可再嵌套子模板 (多重嵌套),區塊亦可多層嵌套,結構極具彈性。
掌握嵌套機制,即可建構高度模組化、易維護的模板系統。