THINKPHP_模版标签

使用PHP代码<php>

    第一种是使用php标签:

    <php>echo 'Hello,world!';</php>

    第二种就是直接使用原始的php代码:

    <?php echo 'Hello,world!'; ?>

但是php标签或者php代码里面就不能再使用标签(包括普通标签和XML标签)了.

防止模版解析<literal>

<literal>
    <if condition="$name eq 1 "> value1
        <elseif condition="$name eq 2" />value2
    <else /> value3
    </if>
</literal>

模版注释

{// 这是模板注释内容 }
{/* 这是模板
注释内容*/ }

 

变量调用函数

使用例子:{$webTitle|md5|strtoupper|substr=0,3}
编译后的PHP代码就是:<?php echo (substr(strtoupper(md5($webTitle)),0,3)); ?>

使用例子:{$create_time|date="y-m-d",###}

编译后的PHP是:<?php echo (date("y-m-d",$create_time)); ?>

变量默认值{$user.nickname|default="这家伙很懒,什么也没留下"}


系统变量及特殊变量

系统变量:包括server、session、post、get、request、cookie
{$Think.server.script_name } // 输出$_SERVER变量
{$Think.session.session_id|md5 } // 输出$_SESSION变量
{$Think.get.pageNumber } // 输出$_GET变量
{$Think.cookie.name } // 输出$_COOKIE变量

{$Think.version } //版本 
{$Think.now } //现在时间 
{$Think.template|basename } //模板页面 
{$Think.LDELIM } //模板标签起始符号 
{$Think.RDELIM } //模板标签结束符号


系统变量及特殊变量(简洁方式)

{@var} //输出Session变量 和 {$Think.session.var} 等效
{#var} //输出Cookie变量 和 {$Think.cookie.var} 等效
{&var} //输出配置参数 和 {$Think.config.var} 等效
{%var} //输出语言变量 和 {$Think.lang.var} 等效
{.var} //输出GET变量 和 {$Think.get.var} 等效
{^var} //输出POST变量 和{$Think.post.var} 等效
{*var} //输出常量和 {$Think.const.var} 等效

如果需要输出二维数组,例如 要输出$_SESSION[‘var1’][‘var2’]的值 快捷输出可以使用:{@var1.var2} 的方式


模版包含文件

使用完整文件名包含格式:<include file="完整模板文件名" />
例如:<include file="./Tpl/default/Public/header.html" />

包含当前模块的其他操作模板文件格式:<include file="操作名" />
例如 导入当前模块下面的read操作模版:<include file="read" />

包含其他模块的操作模板格式:<include file="模块名:操作名" />
例如,包含Public模块的header操作模版:<include file="Public:header" />

包含其他模板主题的模块操作模板格式:<include file="主题名@模块名:操作名" />
例如,包含blue主题的User模块的read操作模版:<include file="blue@User:read" />

 用变量控制要导入的模版格式:<include file="$变量名" />
例如 <include file="$tplName" />


循环输出二维数组标签

Volist标签的name属性表示模板赋值的变量名称,因此不可随意在模板文件中改变。id表示当前的循环变量,可以随意指定,但确保不要和name属性冲突,例如:

<volist name="list" id="vo">
    {$vo.id}{$vo.name}
</volist>

支持输出部分数据,例如输出其中的第5~15条记录

<volist name="list" id="vo" offset="5" length='10'>
    {$vo.name}
</volist>

输出偶数记录

<volist name="list" id="vo" mod="2" >
<eq name="mod" value="1">{$vo.name}</eq>
</volist>

输出循环变量
<volist name="list" id="vo" key="k" >
{$k}.{$vo.name}
</volist>
如果没有指定key属性的话,默认使用循环变量i,例如:
<volist name="list" id="vo" >
{$i}.{$vo.name}
</volist>

Foreach标签

<foreach name="list" item="vo" >
    {$vo.id}{$vo.name}
</foreach>

Switch标签
<switch name="变量" >
    <case value="值1">输出内容1</case>
    <case value="gif|png|jpg">图像格式</case> //多个条件判断
    <default />默认情况
</switch>

判断比较标签

eq或者 equal:等于  neq 或者notequal:不等于
gt:大于  egt:大于等于
lt:小于  elt:小于等于
heq:恒等于  nheq:不恒等于

例如:<eq name="name" value="value">相等<else/>不相等</eq>

所有的比较标签可以统一使用compare标签(其实所有的比较标签都是compare标签的别名)

例如:<compare name="name" value="5" type="eq">value</compare>


Range标签
Range标签用于判断某个变量是否在某个范围之内,包括in、notin和range三个标签,value可以用变量.
可以使用in标签来判断模板变量是否在某个范围内

例如:<in name="id" value="1,2,3" >输出内容1</in>
如果判断不再某个范围内,可以使用:
<notin name="id" value="1,2,3" >输出内容2</notin>
可以把上面两个标签合并成为:
<in name="id" value="1,2,3" >输出内容1<else/>输出内容2</in>

也可以直接使用range标签,替换in和notin的用法:
<range name="id" value="1,2,3" type="in" >输出内容1</range>


Present标签
可以使用present标签来判断模板变量是否已经赋值,例如:
<present name="name">name已经赋值</present>

如果判断没有赋值,可以使用:
<notpresent name="name">name还没有赋值</notpresent>
可以把上面两个标签合并成为:
<present name="name">name已经赋值<else /> name还没有赋值</present


Empty标签
可以使用empty标签判断模板变量是否为空,

例如:<empty name="name">name为空值</empty>
如果判断没有赋值,可以使用:
<notempty name="name">name不为空</notempty>
可以把上面两个标签合并成为:
<empty name="name">name为空<else /> name不为空</empty>


Defined标签
可以使用defined标签判断常量是否已经有定义,例如:
<defined name="NAME">NAME常量已经定义</defined>
如果判断没有被定义,可以使用:
<notdefined name="NAME">NAME常量未定义</notdefined>
可以把上面两个标签合并成为:
<defined name="NAME">NAME常量已经定义<else /> NAME常量未定义</defined>


IF标签
如果觉得上面的标签都无法满足条件判断要求的话,我们还可以使用if标签来定义复杂的条件判断,例如:
<if condition="($name eq 1) OR ($name gt 100) "> value1
    <elseif condition="$name eq 2" />value2
    <else /> value3
</if>

转载于:https://my.oschina.net/miaowang/blog/219390

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值