語法介紹:
phplib中常用的方法有set_file,set_block,set_var,parse,ppasre,p,get等。
聲明:由於本系統采用的是phplib,如果頁面中有大括號對,這將會替換成空白,所以在寫此文章時,用"[[","]]"來替代大括號。大家在用的時候是用大括號便是,此處僅為寫文章方便而作此約定。
set_file:是用來引入模板文件。
用法:
復制代碼 代碼如下:
$t->set_file("show_main","main.htm");
或
$t->set_file(array(
"show_header"=>"header.htm",
"show_main"=>"main.htm"
));
set_block:用來聲明一個區塊
用法:
$t->set_block("show_main","rowlist","RL");
稍微解釋一下,show_main是用set_file取得的文件句柄,rowlist是模板頁面中的區域標識一般如下方式來寫
復制代碼 代碼如下:
<table>
<!-- BEGIN rowlist -->
<tr>
<td>[[param]]</td>
</tr>
<!-- END rowlist -->
</table>
如上是將<tr></tr>作為了一個區塊,這樣就可以用循環來生成多行的列表了
區塊是可以嵌套的
復制代碼 代碼如下:
<table>
<!-- BEGIN rowlist -->
<tr>
<!-- BEGIN collist -->
<td>[[param]]</td>
<!-- END collist -->
</tr>
<!-- END rowlist -->
</table>
如上所示,這聲明一個嵌套區塊,這在boeiBlog的像冊部分采用了這種方式,有興趣的朋友可以找出來看看
對於嵌套的模板,我們可以這樣來使用
$t->set_block("show_main","rowlist","RL"); // 裡面的參數從前向後依次是包含的關系,最後一個是別名,主要用來區塊識別
$t->set_block("rowlist","collist","CL"); // 第一個參數是外層塊的名稱,第二個是自己的名樂,第三個是別名
循環這樣的區塊時要特別注意
如下:
復制代碼 代碼如下:
$t->set_block("show_main","rowlist","RL");
$t->set_block("rowlist","collist","CL");
for($i=0;$i<5;$i++)
{
$t->set("CL");// 這裡要對追加的列循環執行一次清理,否則會多出一堆東西
for($ii=0;$ii<5;$ii++)
{
$t->set_var("param","boeiBlog");
$t->parse("CL","collist",true);// true參數表明這是追加
}
$t->parse("RL","rowlist",true);// 這裡的true也是表追加
}
上述代碼將會產生一個5X5的表格,每個單元格裡會出現一個boeiBlog
set_var:用來作變量替換
上述代碼裡的$t->set_var("param","boeiBlog");就是把模板中的param變量替換成boeiBlog這個字符串,當然也可以替換成變量,如:
復制代碼 代碼如下:
$curdate = date("Y-m-d");
$t->set_var("param",$curdate);
set_var也有追加屬性,如:
復制代碼 代碼如下:
$curdate = date("Y-m-d");
for($i=0;$i<10;$i++)
{
$t->set_var("param","<br>".$curdate,true);
}
這將產生十個連續的當前日期
有時候可以用set_var的追加屬性來替代block的循環.
set_var是可以用數組的,如:
復制代碼 代碼如下:
$t->set_var(array(
"param"=>"boeiBlog",
"title"=>"柏艾網絡"
));
模板如下:
復制代碼 代碼如下:
<table>
<tr>
<td>[[param]],[[title]]</td>
</tr>
</table>
parse:用於解析文件
當我們將模板中的所有變量都處理完之後,可以用parse一將這個模板進行解析。這是模板處理的最後幾道工序。
如:
復制代碼 代碼如下:
$t->set_file("show_index","index.htm");
$t->set_file("show_main","main.htm");
$t->set_var("param","boeiBlog");
$t->parse("main","show_main");
我們所用的模板可能是:
復制代碼 代碼如下:
main.htm
<table>
<tr>
<td>[[param]]</td>
</tr>
</table>
如果此時還有另外一個模板,其結構如下:
index.htm
<div>[[main]]</div>
那麼上述代碼將會把main.htm中的變量替換成boeiBlog後再放到index.htm中的main處,最後形成一個在<div></div>標簽中的表格
解析完成之後便是輸出頁面,
p:用於輸出頁面
如:
復制代碼 代碼如下:
$t->set_file("show_index","index.htm");
$t->set_file("show_main","main.htm");
$t->set_var("param","boeiBlog");
$t->parse("main","show_main");
$t->parse("index","show_index");
$t->p("index");// 此處便會將整個index頁面輸出,注意main.htm已經被嵌入到index.htm,所以不用$t->p("main");
pparse:同p一樣也用來輸出頁面
如:
復制代碼 代碼如下:
上述代碼可以如下簡化
$t->set_file("show_index","index.htm");
$t->set_file("show_main","main.htm");
$t->set_var("param","boeiBlog");
$t->parse("main","show_main");
$t->pparse("index","show_index");// 此處將p和parse結合到一起,立即完成解析並輸出
get:用於獲得文件內容
如:
復制代碼 代碼如下:
$t->set_file("show_index","index.htm");
$t->set_file("show_main","main.htm");
$t->set_var("param","boeiBlog");
$t->parse("main","show_main");
$t->parse("index","show_index");
$getstr = $t->get("index");
echo $getstr;// 你將會看到這實際上和p是一樣的。
利用get,我們可以輕松的取得生成頁面的內容,這可以用於靜態頁面的生成。可以看到phplib用來處理靜態頁面是非常方便的