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