thinkphp 分析3 標籤

2021-09-19 15:01:51 字數 1039 閱讀 9047

通過標籤可以擴充套件解析php或者html

每個標籤庫對應乙個標籤驅動類。

驅動的擴充套件目錄位於 extend/driver/taglib    taglib+標籤庫名稱(首字母大寫)

具體參考thinkphp3.0完全開發手冊。

首先需要定義標籤庫的標籤定義,標籤定義包含了所有標籤庫中支援的所有標籤,定義方式如下:

protected $tags   =  array(

// 定義標籤

'input'=>array('attr'=>'type,name,id,value','close'=>0), // input標籤

);標籤庫的所有支援標籤都在tags屬性中進行定義,tags屬性是乙個二維陣列,每個元素就是乙個標籤定義,索引名就是標籤名,採用小寫定義,呼叫的時候不區分大小寫。

每個標籤定義支援的屬性包括:

屬性名說明

attr

標籤支援的屬性列表,用逗號分隔

close

標籤是否為閉合方式 (0閉合 1不閉合),預設為不閉合

level

標籤的巢狀層次(只有不閉合的標籤才有巢狀層次)

alias

標籤別名

定義了標籤屬性後,就需要定義每個標籤的解析方法了,每個標籤的解析方法在定義的時候需要新增「_」字首,可以傳入兩個引數,屬性字串和內容字串(針對非閉合標籤)。必須通過return 返回標籤的字串解析輸出,在標籤解析類中可以呼叫模板類的例項。下面是乙個input解析方法的定義:

public function _input($attr,$content)   {

$tag    = $this->par***mlattr($attr,'input');

$name   =   $tag['name'];

$id   =          $tag['id'];

$type   =   $tag['type'];

$value   =   $this->autobuildvar($tag['value']);

$str = '';

return $str;

Thinkphp模板標籤 For標籤

for標籤用於實現for迴圈,格式為 for標籤 迴圈輸出資料 閉合非閉合標籤 屬性start 必須 迴圈變數開始值 end 必須 迴圈變數結束值 name 可選 迴圈變數名,預設值為i step 可選 步進值,預設值為1 comparison 可選 判斷條件,預設為lt 用法 start 開始值 ...

Thinkphp 模板 內建標籤 比較標籤

比較標籤用於簡單的變數比較,複雜的判斷條件可以用if標籤替換,比較標籤是一組標籤的集合,基本上用法都一致,如下 比較標籤 name 變數 value 值 內容系統支援的比較標籤以及所表示的含義分別是 標籤含義 eq或者 equal 等於neq 或者notequal 不等於gt 大於egt 大於等於 ...

thinkphp常用內建標籤

變數輸出使用普通標籤就足夠了,但是要完成其他的控制 迴圈和判斷功能,就需要借助模板引擎的標籤庫功能了,系統內建標籤庫的所有標籤無需引入標籤庫即可直接使用。xml標籤有兩種,包括閉合標籤和開放標籤,乙個標籤在定義的時候就已經決定了是否是閉合標籤還是開放標籤,不可混合使用,例如 閉合標籤 開放標籤 va...