国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP中TAL模板引擎語法的解析(代碼)

2020-03-22 19:36:21
字體:
來源:轉載
供稿:網友
這篇文章給大家介紹的內容是關于php TAL模板引擎語法,內容很詳細,有需要的朋友可以參考一下,希望可以幫助到大家。

PHP 數據

本文檔的使用到的數據($talData)

//定義talData變量$talData = array();$talData[ title ] = title1 $talData[ key ] = key1 $talData[ href ] = xxx.html $talData[ html ] = h1 h1標題 /h1 $talData[ fun ] = function($key= ){ return $key === key1 ? true : false;//兩維數組$talData[ list1 ] = array( array( id = 1 , title = 標題1 ), array( id = 2 , title = 標題2 ), array( id = 3 , title = 標題3 ), array( id = 4 , title = 標題4 ));
//輸出的數據結構{ title : title1 , key : key1 , href : xxx.html , html : h1/u6807/u9898 //h1 , fun :{}, list1 :[{ id : 1 , title : /u6807/u98981 },{ id : 2 , title : /u6807/u98982 },{ id : 3 , title : /u6807/u98983 },{ id : 4 , title : /u6807/u98984 }]}
屬性優先權

define 定義變量

condition

repeat

content or replacae

attributes 屬性

omit-tag

TAL有效空間定義變量定義全局(global)變量title和局部變量 key
 p tal:define= global title talData/title; key talData/key  ${title} ${key}${title} ${key} !-- 結果 --  p title1 key1 /p title1 
定義默認值變量
 p tal:define= global fname string:fname1 string; lname string:lname1 string;  ${fname} ${lname}${fname} ${lname} !-- 結果 --  p fname1 string lname1 string /p fname1 string 
TAL有效空間定義變量定義拼接變量
 p tal:define= global hello string:hello $fname welcome on this page  ${hello} p tal:define= global hello string:hello ${fname} welcome on this page  ${hello} !-- 結果 --  p hello fname1 string welcome on this page /p 
定義變量,執行php方法
 p tal:define= global rand php: rand(1, 4)  ${rand} !-- 結果 --  p 2 /p 
TAL有效空間輸出內容tal:replace= 數據 將用值替代整個標簽,如果沒有賦值將替空
 tal:block  p 渲染1 /p  /tal:block  tal:block tal:replace= 不渲染這里 /tal:block  tal:block tal:replace= talData/title  p 不渲染這里 /p  /tal:block  p ${talData/title} /p  !-- 結果 --  p 渲染1 /p title1 p title1 /p 
tal:content= 數據 將會替代標簽內的內容
 p tal:content= talData/title  test data span tips /span  !-- 結果 --  p title1 /p 
TAL有效空間輸出內容${數據}
 p >tal:attributes 將會改變tag的屬性或值
 a href= http://www.foo.com title= some foo link tal:attributes= href talData/href; title talData/title tal:content= talData/key sample link /a  !-- 結果 --  a href= xxx.html title= title1 key1 /a 
tal:on-error= string: 出錯時顯示內容 ;出錯時顯示error內容,并且沒有當前標簽;
 span tal:on-error= string: 當前數據不存在 tal:content= talData/key key 已經是定義了 /span  span tal:on-error= string: 當前數據不存在 tal:content= talData/ky ky 沒有定義的 /span  !-- 結果 --  span key1 /span 當前數據不存在
TAL有效空間判斷條件tal:condition= 數據 ,條件是true,標簽和它的內容就會被顯示
 p tal:condition= php: true tal:content= talData/title 標題 /p  p tal:condition= php: talData[ key ] == key1 tal:content= talData/key 關鍵詞 /p  p tal:condition= php: key == key1 tal:define= key talData/key tal:content= talData/key 關鍵詞 /p  p tal:condition= talData/key tal:content= talData/key 關鍵詞 /p  p tal:condition= talData/fun tal:content= talData/key 關鍵詞 /p  !-- 結果 --  p title1 /p  p key1 /p  p key1 /p  p key1 /p 
TAL有效空間循環tal:repeat= 賦值變量 數據 ;屬性循環它的元素和內容直到結束
 ul tal:repeat= item talData/list1  li tal:condition= php: repeat.item.index == 0  repeat/item/key: ${repeat/item/key} ;(如果talData/list1是一組聯合對象,返回item的鍵) br/  repeat/item/index: ${repeat/item/index} ;(返回索引號(0~count-1)) br/  repeat/item/number: ${repeat/item/number} ;(返回索引號(1~count)) br/  repeat/item/even: ${repeat/item/even} ;(如果是偶數,true) br/  repeat/item/odd: ${repeat/item/odd} ;(如果是奇數,true) br/  repeat/item/start: ${repeat/item/start} ;(如果是第一個元素,true) br/  repeat/item/end: ${repeat/item/end} ;(如果是最后一個元素,true) br/  repeat/item/length: ${repeat/item/length} ;(返回talData/list1里面元素個數) br/  ------------- /li  li tal:condition= php: repeat.item.index 0 tal:content= item/title 列表li /li  /ul  !-- 結果 -- repeat/item/key: 0 ;(如果talData/list1是一組聯合對象,返回item的鍵) br/ repeat/item/index: 0 ;(返回索引號(0~count-1)) br/ repeat/item/number: 1 ;(返回索引號(1~count)) br/ repeat/item/even: 1 ;(如果是偶數,true) br/ repeat/item/odd: 0 ;(如果是奇數,true) br/ repeat/item/start: 1 ;(如果是第一個元素,true) br/ repeat/item/end: 0 ;(如果是最后一個元素,true) br/ repeat/item/length: 4 ;(返回talData/list1里面元素個數) br/  /li  li 標題2 /li  li 標題3 /li  li 標題4 /li 
TAL有效空間標簽渲染與否tal:omit-tag= condition ;要求phptal解析時忽略實體的開關閉標簽,它的內容仍然會顯示.
 p tal:omit-tag= php: false  omit-tag值為真,不出現當前p標簽,否則就出現當前p標簽 p tal:omit-tag= php: true  omit-tag值為真,不出現當前p標簽,否則就出現當前p標簽 !-- 結果 --  p omit-tag值為真,不出現當前p標簽,否則就出現當前p標簽 /p omit-tag值為真,不出現當前p標簽,否則就出現當前p標簽
tal:block ;代替標簽,標簽永遠不輸出
 tal:block tal:repeat= x php:range(1,10) tal:content= x 文字會出現十次 /tal:block  !-- 結果 -- 12345678910
METAL空間 支持宏metal:define-macro 定義宏
 !-- 在pWeb/_macro/common.html文件中代碼 --  tal:block metal:define-macro= WinPageData  script type= text/javascript  window.WinPageData = ${structure WinPageData}; /script  /tal:block 
metal:use-macro 調用宏
 tal:block metal:use-macro= pWeb/_macro/common.html/WinPageData  當前內容會被宏替換掉 script type= text/javascript  window.WinPageData = {}; /script  /tal:block  p metal:use-macro= ${路徑變量}/macros.html/main_menu /p 
METAL空間 支持宏metal:define-slot 定義宏標簽替換
 !-- 在pWeb/_macro/mlog.html文件中代碼 --  tal:block metal:define-macro= mobile  script  metal:block define-slot= mlog_page  var mlog_page = mobile_other  /metal:block  var mlog_track = function(){}; /script  script src= xxx.js /script  /tal:block 
metal:fill-slot 使用宏標簽替換
 tal:block metal:use-macro= pWeb/_macro/mlog.html/mobile  tal:block metal:fill-slot= mlog_page  var mlog_page = mobile_index  /tal:block  /tal:block 
METAL空間 支持宏宏獲取參數
 !-- 在pWeb/_macro/mlog.html文件中代碼 --  tal:block metal:define-macro= conent  p ${title} /p  p ${key} /p  /tal:block 
宏傳參數(tal:define)
 tal:block metal:use-macro= pWeb/_macro/mlog.html/conent tal:define= title 標題 key 關鍵詞 /tal:block 
phptal空間

phptal:debug

phptal:cache 使整個元素(包括標簽)保存在磁盤而不重新解析直到cache失效,有效期的格式由數字和 d , h , m 或 s 組成.
 p >使用php:語法如下所述同正規表達式,除了- 被替換成.及變量不需要前綴$,使用空格裝配由點分隔的字符串.
php:htmlentities(foo)php: string ${varReplaced} php: string ${some.path().to[0].var} php:foo.a.b.c(e).htmlentities(SomeClass::staticMethod())php:SomeClass::ConstOfClassphp:SomeClass::$staticVar
使用not:、exists:語法not:可以用于tal:condition中,相反判斷
 span tal:condition= not: logged not logged /span  !-- 結果 --  span not logged /span 
exists:可以用于tal:condition中,判斷存在
 span tal:condition= exists: talData/title tal:content= talData/title 存在 /span  !-- 結果 --  span title1 /span 
使用default、structure語法default默認值;在 tal:define、tal:content、tal:attributes 使用
 span tal:define= myVar talData/title | default default my var value /span  p tal:content= some/var | other/path | default 沒有var,沒有找到path a href= unknown.html title= Unknown page tal:attributes= href item/href | default; title talData/title | default tal:content= item/title | default Unknown page /a  !-- 結果 --  p 沒有var,沒有找到path /p  a href= unknown.html title= title1 Unknown page /a 
使用structure語法允許將包括html/xml等變量輸出顯示;

注意存在XSS攻擊風險,謹慎使用

在tal:content中使用
 p tal:content= talData/html /p  p tal:content= structure talData/html /p  !-- 結果 --  p h1 h1標題 /h1 /p  p h1 h1標題 /h1 /p 
在${}中使用
 p ${talData/html} /p  p ${structure talData/html} /p  !-- 結果 --  p h1 h1標題 /h1 /p  p h1 h1標題 /h1 /p 

相關文章推薦:

PHP的學習--PHP加密,PHP學習--PHP加密_PHP教程

以上就是PHP中TAL模板引擎語法的解析(代碼)的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 甘肃省| 桐乡市| 德清县| 安平县| 大余县| 拉孜县| 陇川县| 稻城县| 临汾市| 茶陵县| 德昌县| 岳阳县| 涟源市| 昭觉县| 自治县| 留坝县| 隆昌县| 同德县| 榆中县| 芜湖市| 泽库县| 嘉定区| 雷山县| 巴里| 洛宁县| 确山县| 荃湾区| 吉安市| 海宁市| 诏安县| 龙南县| 如皋市| 富宁县| 宜黄县| 根河市| 德庆县| 大安市| 隆安县| 南陵县| 建始县| 华宁县|