phplib模板體系介紹

2021-03-31 08:56:57 字數 3606 閱讀 7727

本文講述了phplib中的一些基本語法和函式

boeiblog是一套支援多模板的單使用者版網路日誌程式

其模板引擎採用的是phplib7.4版。此版本修正了以前的大部分bug,檔案位於class/template.class.php,有興趣的朋友可以開啟看看。

這是一套解析型的模板,而不是**arty之類的編譯型。用這套模板的好處是模板頁面可以很簡單,但程式因為要替換模板中的標籤,因此比較慢。

好在此系統是為個人使用者準備的。效率是放在第二位,易用性是放在首位的,因此仍然採用的是phplib的模板。

語法介紹:

phplib中常用的方法有set_file,set_block,set_var,parse,ppasre,p,get等。

宣告:由於本系統採用的是phplib,如果頁面中有大括號對,這將會替換成空白,所以在寫此文章時,用"[[","]]"來替代大括號。大家在用的時候是用大括號便是,此處僅為寫文章方便而作此約定。

set_file:是用來引入模板檔案。

用法:code:

$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是模板頁面中的區域標識一般如下方式來寫

code:

[[param]]

如上是將作為了乙個區塊,這樣就可以用迴圈來生成多行的列表了

區塊是可以巢狀的

code:

[[param]]

如上所示,這宣告乙個巢狀區塊,這在boeiblog的像冊部分採用了這種方式,有興趣的朋友可以找出來看看

對於巢狀的模板,我們可以這樣來使用

$t->set_block("show_main","rowlist","rl"); // 裡面的引數從前向後依次是包含的關係,最後乙個是別名,主要用來區塊識別

$t->set_block("rowlist","collist","cl"); // 第乙個引數是外層塊的名稱,第二個是自己的名樂,第三個是別名

迴圈這樣的區塊時要特別注意

如下:code:

$t->set_block("show_main","rowlist","rl");

$t->set_block("rowlist","collist","cl");

for($i=0;$i<5;$i++)

$t->parse("rl","rowlist",true);// 這裡的true也是表追加

}上述**將會產生乙個5x5的**,每個單元格裡會出現乙個boeiblog

set_var:用來作變數替換

上述**裡的$t->set_var("param","boeiblog");就是把模板中的param變數替換成boeiblog這個字串,當然也可以替換成變數,如:

code:

$curdate = date("y-m-d");

$t->set_var("param",$curdate);

set_var也有追加屬性,如:

code:

$curdate = date("y-m-d");

for($i=0;$i<10;$i++)

這將產生十個連續的當前日期

有時候可以用set_var的追加屬性來替代block的迴圈.

set_var是可以用陣列的,如:

code:

$t->set_var(array(

"param"=>"boeiblog",

"title"=>"柏艾網路"

)); 

模板如下:

code:

[[param]],[[title]]

parse:用於解析檔案

當我們將模板中的所有變數都處理完之後,可以用parse一將這個模板進行解析。這是模板處理的最後幾道工序。

如:code:

$t->set_file("show_index","index.htm");

$t->set_file("show_main","main.htm");

$t->set_var("param","boeiblog");

$t->parse("main","show_main"); 

我們所用的模板可能是:

code:

main.htm

[[param]]

如果此時還有另外乙個模板,其結構如下:

code:

index.htm

[[main]]

那麼上述**將會把main.htm中的變數替換成boeiblog後再放到index.htm中的main處,最後形成乙個在

標籤中的**

解析完成之後便是輸出頁面,

p:用於輸出頁面

如:code:

$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一樣也用來輸出頁面

如:code:

上述**可以如下簡化

$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:用於獲得檔案內容

如:code:

$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用來處理靜態頁面是非常方便的

模板,PHPLIB處理方式 一

一般來說,模板可以讓你完全地把你的php 從html中分離出來,這樣使得html的圖形 設計者們非常高興,而且可以避免他們搞丟你的寶貴設計。它不是fasttemplates 那麼,我們真的需要在phpbuilder上關於模板的另一篇文章嗎?好,是的,因為有不止一種的方法用php來實現模板。sasch...

Spring Cloud體系介紹

上圖只是spring cloud體系的一部分,spring cloud共整合了19個子專案,裡面都包含乙個或者多個第三方的元件或者框架!spring cloud 工具框架 1 spring cloud config 配置中心,利用git集中管理程式的配置。當然這個數量還在一直增加.微服務是一種架構的...

yean體系架構介紹

yarn是hadoop 2.0的資源管理器。它是乙個通用的資源管理系統,可為上層應用提供統一的資源管理和排程,它的引入為集群在利用率 資源統一管理和資料共享等方面帶來了巨大好處。1 從hadoop0.23版本開始對於mapduce計算框架進行公升級,引入了yarn。老的版本mrv1存在諸多問題,和y...