亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > 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教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av电影中文字幕| 欧美日韩视频免费播放| 亚洲欧美日韩国产精品| 亚洲欧美www| 国产精品视频久久久| 亚洲人成人99网站| 中文字幕久久久av一区| 国产精品久久一| 国产成人福利视频| 日韩精品久久久久久久玫瑰园| 国产亚洲视频在线| 91免费版网站入口| 国产精品99久久久久久久久| 久久久久国产精品一区| 97色在线视频观看| 国产精品影院在线观看| 伊人久久久久久久久久久| 日韩成人在线视频| 亚洲伊人久久综合| 在线观看国产成人av片| 草民午夜欧美限制a级福利片| 中文字幕欧美日韩va免费视频| 欧美国产日韩一区二区在线观看| 国产精品扒开腿做爽爽爽的视频| 国产亚洲欧美日韩一区二区| 日韩三级影视基地| 日本欧美爱爱爱| 亚洲黄色av女优在线观看| 欧美在线观看日本一区| 日韩成人中文字幕| 国产一区二区三区视频免费| 国产亚洲精品一区二555| 久久精品在线播放| 国产欧美日韩专区发布| 亚洲免费视频在线观看| 亚洲精品久久久久国产| 久热在线中文字幕色999舞| 亚洲精品视频免费在线观看| 亚洲精品一区二区三区婷婷月| 久久视频在线视频| 91视频-88av| 欧美性受xxxx黑人猛交| 久久久久久久久久av| 国产免费成人av| 欧美伊久线香蕉线新在线| 国产99久久精品一区二区 夜夜躁日日躁| 国产一区玩具在线观看| 国产成人精品免费久久久久| 国产精品久久久久久久久久免费| 久久精品99国产精品酒店日本| 中文国产成人精品久久一| 九九精品在线播放| 久久精品国产电影| 亚洲最大福利视频| 欧洲日本亚洲国产区| 久久精视频免费在线久久完整在线看| 91国在线精品国内播放| 亚洲欧美成人网| 中文字幕在线视频日韩| 久久精品人人爽| 88xx成人精品| 欧洲成人性视频| 国产视频观看一区| 色无极亚洲影院| 亚洲毛片在线观看.| 国产亚洲成av人片在线观看桃| 不卡av在线网站| 91超碰中文字幕久久精品| 国产乱人伦真实精品视频| 国产精品福利在线| 久久久99久久精品女同性| 最近2019年手机中文字幕| 亚洲欧美日韩国产中文| 欧美一区二区三区免费视| 国产精品爽爽爽爽爽爽在线观看| 国产一区二区三区日韩欧美| 98精品在线视频| 欧美福利小视频| 日韩成人在线视频网站| 亚洲欧美制服综合另类| 国产精品成人一区二区| 美日韩在线视频| 国产日韩精品一区二区| 国产精品综合久久久| 中文字幕日韩在线视频| 上原亚衣av一区二区三区| 欧美理论电影网| 国产精品久久久久久av福利软件| 亚洲国产成人在线视频| 国产精品扒开腿做| 成人激情视频免费在线| 精品成人久久av| 亚洲激情在线观看视频免费| 欧美人与物videos| 亚洲第一中文字幕在线观看| 国产精品羞羞答答| 国内精品久久久久久中文字幕| 亚洲国产一区二区三区四区| 欧美高清在线视频观看不卡| 久久久999精品视频| 久久久人成影片一区二区三区| 国精产品一区一区三区有限在线| 精品激情国产视频| 国产日韩中文字幕在线| 欧美性猛交丰臀xxxxx网站| 欧美成年人视频| 97色在线观看| 91老司机精品视频| 中文字幕日韩免费视频| 欧美成年人在线观看| 中文字幕日韩欧美在线视频| 正在播放欧美一区| 自拍亚洲一区欧美另类| 色天天综合狠狠色| 亚洲免费电影在线观看| 久久久999精品| 欧美中文在线免费| 亚洲免费影视第一页| 午夜精品久久久久久久99热浪潮| 伊人久久久久久久久久| 91精品视频一区| 欧美日韩免费区域视频在线观看| 黄色一区二区三区| 国产一区二区香蕉| 色妞一区二区三区| 久久韩国免费视频| 欧美日韩国产丝袜美女| 黄网站色欧美视频| 久久久免费精品| 久久综合久中文字幕青草| 成人午夜在线观看| 欧美激情精品久久久久久久变态| 久久精品视频免费播放| 久久成人国产精品| 欧美一区二区影院| 亚洲久久久久久久久久| 在线视频中文亚洲| 中文字幕日韩精品有码视频| 国语自产偷拍精品视频偷| 亚洲欧美一区二区激情| 亚洲天堂av网| 精品亚洲一区二区三区在线观看| 久久久午夜视频| 欧美国产精品人人做人人爱| 亚洲天堂男人的天堂| 亚洲国产成人久久综合| 国产精品日本精品| 亚洲国产日韩欧美在线图片| www.日韩不卡电影av| 91久久综合亚洲鲁鲁五月天| 在线精品播放av| 国语自产精品视频在线看一大j8| 日韩中文字幕免费| 欧洲成人在线观看| 91久久精品国产91久久| 日韩成人激情影院| 欧美精品18videos性欧| 日韩精品有码在线观看| 欧美性xxxx极品hd欧美风情| 色综合天天综合网国产成人网| 日韩欧美第一页| 亚洲成人网在线观看| 国产精品激情av在线播放| 亚洲а∨天堂久久精品9966|