phplib裡帶的template.inc包含了一個模板類,用它可以實現程序代碼和
界面的分離,給程序設計和界面設計帶來了極大的方便,而且它的實現比快速
模板要好。但有一個致命的小錯誤導致set_block()函數不能正常使用,而這個
函數是非常重要的,它在處理重復塊時顯得非常的好用。
下面通過一個最簡單的例子來講解用法及解決方法:
模板文件:page1.ihtml(名字你可以隨便取,後綴ihtml是一種習慣用法)
<HTML>
<HEAD>
<TITLE> {TITLE} </TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<!-- BEGIN TBK -->
ID: {ID}<BR>
NAME: {NAME}<BR>
<HR>
<!-- END TBK -->
</BODY>
</HTML>
處理文件:test.php
<?php
include("./template.inc");
# 創建模板變量$t
$t = new Template(".", "keep");
# 定義頁面變量的引用,這樣你就可以用page1來引用頁面了
$t->set_file("page1","page1.ihtml");
# 提取名稱為TBK的塊,讓它指向tbks的引用
$t->set_block("page1", "TBK", "tbks");
# 替換標題TITLE變量
$t->set_var("TITLE","my test of template");
# 定義ID和NAME,然後把TBK附加到tbks
for ($i=1; $i<=3; $i++) {
$n = $i;
$nn = $i*10;
$t->set_var(array("ID" => $n, "NAME" => $nn));
$t->parse("tbks", "TBK", true);
}
# 最後輸出頁面
$t->pparse("out", "page1");