当前位置: 首页 > 后端技术 > PHP

PHPTAL模板引擎语法

时间:2023-03-29 14:46:15 PHP

来源:Axian博客PHPTAL模板引擎语法PHP数据本文档中使用的数据($talData)//定义talData变量$talData=array();$talData['title']='title1';$talData['key']='key1';$talData['href']='xxx.html';$talData['html']='

h1title

';$talData['fun']=function($key=''){返回$key==='key1'?true:false;};//二维数组$talData['list1']=array(array('id'=>'1','title'=>'标题1'),array('id'=>'2','title'=>'Title2'),array('id'=>'3','title'=>'Title3'),array('id'=>'4','title'=>'Title4'));//输出数据结构{"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"}]}属性priority定义变量conditionrepeatcontent或replaceattributes属性omit-tagTAL有效空间定义变量定义全局变量title和局部变量key${标题}&&${key}</div>${title}&&${key}
title1&&key1
title1&&定义默认值变量${fname}&&${lname}}
${fname}&&${lname}
fname1string&&lname1string
fname1string&&TAL有效空间定义变量定义连接变量${hello}

or${hello}

hellofname1stringwelcomeonthispage

定义变量并执行php方法${rand}

2

TAL有效空间输出内容tal:replace="Data"将用一个值替换整个标签,如果没有赋值,它将是空的

Render1

不要在这里渲染<tal:blocktal:replace="talData/title">

不要在此处渲染

${talData/title}

Render1

title1

title1

tal:content="data"将替换标签中的内容测试数据tips

title1

TAL有效空间输出内容${data}${talData/title}

title1

tal:attributes会改变标签的属性或值示例链接key1tal:on-error="string:出错时显示内容";出现错误时显示错误内容,且没有当前标签;key已经定义kyisnotdefinedkey1当前数据不存在TAL有效空间判断条件tal:condition="data",条件为真,标签和它的内容将显示Title

关键字

关键字

关键字

keyword

title1

key1

key1

key1

TAL有效空间循环tal:repeat="assignvariabledata";属性循环其元素和内容直到结束repeat/item/key:${repeat/item/key};(如果talData/list1是一组联合对象,返回item的key)
repeat/item/index:${repeat/item/index};(返回索引引用(0~count-1))
repeat/item/number:${repeat/item/number};(返回索引号(1~count))
repeat/item/even:${repeat/item/even};(如果偶数则为真)
重复/项目/奇数:${repeat/item/odd};(如果是奇数则为真)
重复/项目/开始:${repeat/item/start};(如果是第一个元素则为真)
repeat/item/end:??${repeat/item/end};(如果是最后一个元素则为真)
repeat/item/length:${repeat/item/length};(返回talData/list1中的元素个数)
------------0"tal:content="item/title">listli
  • repeat/item/key:0;(如果talData/list1是一组联合对象,返回item的key)
    repeat/item/index:0;(返回索引号(0~count-1))
    repeat/项目/数量:1;(返回索引号(1~count))
    repeat/item/even:1;(如果是偶数,则为真)
    重复/项目/奇数:0;(如果是奇数,则为真)
    repeat/item/start:1;(如果是第一个元素,则为真)
    repeat/item/e达:0;(如果是最后一个元素则为真)
    repeat/item/length:4;(返回talData/list1中的元素个数)
  • Title2
  • Header3
  • Header4
  • TAL有效空间标签渲染与否tal:omit-tag="condition";要求phptal在解析时忽略实体的开始和结束标签,其内容仍然会显示。不出现,否则会出现当前p标签

    omit-tag值为true,则不会出现当前p标签,否则会出现当前p标签

    omit-tag值为真,当前p标签不出现p标签,否则会出现当前p标签

    omit-tag值为true,当前p标签不会出现,否则当前p标签会出现;而不是标签,标签永远不会输出文本会出现十次12345678910METAL空间支持宏metal:define-macro定义宏metal:use-macro调用宏当前内容将被宏替换
    METAL空间支持宏metal:define-slot定义宏标签替换metal:fill-slot使用宏标签替换varmlog_page='mobile_index';METAL空间支持宏获取参数

    ${title}${key}

    宏参数(tal:define)phptalspacephptal:debugphptal:cache使得整个元素(包括标签)保存在磁盘上,直到缓存过期,给出有效期的格式按数字和“d”、“h”、“m”或“s”。...
    有效期可以选择性的跟在'per'参数后面要定义共享多少个缓存,使用'perurl'复制元素每个网址。...使用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::$staticVarusingnot:,exists:语法not:可用于tal:condition,反之判断notloggednotloggedexists:可以用tal:判断是否存在的条件existstitle1使用default和结构语法default默认值;在tal:define,tal:content,tal:attributes中使用默认我的var值Novar,nopathfound

    Unknownpage

    Novar,nopathfound

    未知页面使用结构语法允许包含html/xml等变量的输出显示;注意XSS攻击风险,tal:content中谨慎使用

    h1标题

    h1标题

    在${}中使用
    ${talData/html}${structuretalData/html}

    h1标题

    h1标题

    h1>
    相关资料官网php手册来源:阿闲博客