Properties

$xml

$xml : string

标签库定义XML文件

Type

string

$tags

$tags : 

Type

$tagLib

$tagLib : string

标签库名称

Type

string

$tagList

$tagList : array

标签库标签列表

Type

array

$parse

$parse : array

标签库分析数组

Type

array

$valid

$valid : boolean

标签库是否有效

Type

boolean

$tpl

$tpl : object

当前模板对象

Type

object

$comparison

$comparison : 

Type

Methods

__construct()

__construct(\think\Template  $template) 

架构函数

Parameters

\think\Template $template

模板引擎对象

parseTag()

parseTag(string  $content, string  $lib = '') : void

按签标库替换页面中的标签

Parameters

string $content

模板内容

string $lib

标签库名

getRegex()

getRegex(array|string  $tags, boolean  $close) : string

按标签生成正则

Parameters

array|string $tags

标签名

boolean $close

是否为闭合标签

Returns

string

parseAttr()

parseAttr(string  $str, string  $name, string  $alias = '') : array

分析标签属性 正则方式

Parameters

string $str

标签属性字符串

string $name

标签名

string $alias

别名

Returns

array

parseCondition()

parseCondition(string  $condition) : string

解析条件表达式

Parameters

string $condition

表达式标签内容

Returns

string

autoBuildVar()

autoBuildVar(string  $name) : string

自动识别构建变量

Parameters

string $name

变量描述

Returns

string

getTags()

getTags() : array

获取标签列表

Returns

array

tagPhp()

tagPhp(array  $tag, string  $content) : string

php标签解析 格式: {php}echo $name{/php}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagVolist()

tagVolist(array  $tag, string  $content) : string

volist标签解析 循环输出数据集 格式: {volist name="userList" id="user" empty=""} {user.username} {user.email} {/volist}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagForeach()

tagForeach(array  $tag, string  $content) : string

foreach标签解析 循环输出数据集 格式: {foreach name="userList" id="user" key="key" index="i" mod="2" offset="3" length="5" empty=""} {user.username} {/foreach}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagIf()

tagIf(array  $tag, string  $content) : string

if标签解析 格式: {if condition=" $a eq 1"} {elseif condition="$a eq 2" /} {else /} {/if} 表达式支持 eq neq gt egt lt elt == > >= < <= or and || &&

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagElseif()

tagElseif(array  $tag, string  $content) : string

elseif标签解析 格式:见if标签

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagElse()

tagElse(array  $tag) : string

else标签解析 格式:见if标签

Parameters

array $tag

标签属性

Returns

string

tagSwitch()

tagSwitch(array  $tag, string  $content) : string

switch标签解析 格式: {switch name="a.name"} {case value="1" break="false"}1{/case} {case value="2" }2{/case} {default /}other {/switch}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagCase()

tagCase(array  $tag, string  $content) : string

case标签解析 需要配合switch才有效

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagDefault()

tagDefault(array  $tag) : string

default标签解析 需要配合switch才有效 使用: {default /}ddfdf

Parameters

array $tag

标签属性

Returns

string

tagCompare()

tagCompare(array  $tag, string  $content) : string

compare标签解析 用于值的比较 支持 eq neq gt lt egt elt heq nheq 默认是eq 格式: {compare name="" type="eq" value="" }content{/compare}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagRange()

tagRange(array  $tag, string  $content) : string

range标签解析 如果某个变量存在于某个范围 则输出内容 type= in 表示在范围内 否则表示在范围外 格式: {range name="var|function" value="val" type='in|notin' }content{/range} example: {range name="a" value="1,2,3" type='in' }content{/range}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagPresent()

tagPresent(array  $tag, string  $content) : string

present标签解析 如果某个变量已经设置 则输出内容 格式: {present name="" }content{/present}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagNotpresent()

tagNotpresent(array  $tag, string  $content) : string

notpresent标签解析 如果某个变量没有设置,则输出内容 格式: {notpresent name="" }content{/notpresent}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagEmpty()

tagEmpty(array  $tag, string  $content) : string

empty标签解析 如果某个变量为empty 则输出内容 格式: {empty name="" }content{/empty}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagNotempty()

tagNotempty(array  $tag, string  $content) : string

notempty标签解析 如果某个变量不为empty 则输出内容 格式: {notempty name="" }content{/notempty}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagDefined()

tagDefined(array  $tag, string  $content) : string

判断是否已经定义了该常量 {defined name='TXT'}已定义{/defined}

Parameters

array $tag
string $content

Returns

string

tagNotdefined()

tagNotdefined(array  $tag, string  $content) : string

判断是否没有定义了该常量 {notdefined name='TXT'}已定义{/notdefined}

Parameters

array $tag
string $content

Returns

string

tagLoad()

tagLoad(array  $tag, string  $content) : string

load 标签解析 {load file="/static/js/base.js" /} 格式:{load file="/static/css/base.css" /}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagAssign()

tagAssign(array  $tag, string  $content) : string

assign标签解析 在模板中给某个变量赋值 支持变量赋值 格式: {assign name="" value="" /}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagDefine()

tagDefine(array  $tag, string  $content) : string

define标签解析 在模板中定义常量 支持变量赋值 格式: {define name="" value="" /}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagFor()

tagFor(array  $tag, string  $content) : string

for标签解析 格式: {for start="" end="" comparison="" step="" name=""} content {/for}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagUrl()

tagUrl(array  $tag, string  $content) : string

url函数的tag标签 格式:{url link="模块/控制器/方法" vars="参数" suffix="true或者false 是否带有后缀" domain="true或者false 是否携带域名" /}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string

tagFunction()

tagFunction(array  $tag, string  $content) : string

function标签解析 匿名函数,可实现递归 使用: {function name="func" vars="$data" call="$list" use="&$a,&$b"} {if is_array($data)} {foreach $data as $val} {~func($val) /} {/foreach} {else /} {$data} {/if} {/function}

Parameters

array $tag

标签属性

string $content

标签内容

Returns

string