• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Smarty模板语法详解

    本文实例讲述了Smarty模板语法。分享给大家供大家参考,具体如下:

    所有模版标签用分隔符包围,默认为“{”和“}”。

    模板注释

    模板注释被星号包围,两边星号被定界符“{ }”包围,如 { smarty * }

    smarty注释不会在模板文件的最后输出中出现,这与不同(译注:html注释在页面源码中可见,而smarty注释则不能)。

    如下简单代码片{smarty}在源码中不可见,而源码可见。

    html>
    head>
    tltle>smarty/tltle>
    body>
    {*smarty*}
    smarty
    !--smarty-->
    /body>
    /head>
    /html>

    变量初步

    模板变量用美元符号开始,可以包含数字、字母和下划线,这php很像。(注意:配置文件变量是一个不用美元符号开始,可以包含数字、字母和下划线,这php很像。(注意:配置文件变量是一个不用美元符号,而是用#号包围着变量(#hashmarks#),或者是一个$smarty.config形式的变量。)

    这里config不做说明,下面是变量示例:

    {$a+$b}      //最简单的变量处理方法
    {$a={$b}+1}   //标签嵌套标签
    {$array[$a]}  //变量做数组索引
    {$assign var=fun value=$a+$b}  //变量赋值
    {$fun="{a}"}  //引号套用标签
    {$assign var=fun value=[1,2,3]}
    {$assign var=fun value=[1,2,[3,4]]}
    {$assign var=fun value=[1=>'one',2=>'tow']}    //数组定义
    {$fun=stlen($a)}
    {fun=function($a,$b)}     //用作函数参数
    {$array.a=1}
    {$array.a.b.c($array[a][b][c])=1}  //数组索引赋值
    {$object->method1($x)->method2($y)}   //对象链
    
    

    双引号中插入变量

    1、Smarty可以识别嵌入在双引号中的变量,只要此变量只包含数字、字母、下划线和中括号[]。
    2、对于句号,数组和对象引用等的符号此变量必须用两个反引号`。
    3、Smarty3增加了双引号对Smarty标签的支持。在需要包含调节器变量、插件、php函数返回值的情形中非常实用。

    {function var="test $foo test"}       // 识别 $foo
    {func var="test $foo_bar test"}       // 识别 $foo_bar
    {func var="test `$foo[0]` test"}     // 识别 $foo[0]
    {func var="test `$foo[bar]` test"}   // 识别 $foo[bar]
    {func var="test $foo.bar test"}       // 识别  $foo (无法识别 $foo.bar)
    {func var="test `$foo.bar` test"}    // 识别 $foo.bar
    {func var="test `$foo.bar` test"|escape} //调节器在引号外
    {func var="test {$foo|escape} test"}   // 调节器在引号内
    {func var="test {time()} test"}        // PHP 函数识别
    {func var="test {counter} test"}      //标签识别
    
    

    函数

    每一个smarty标签输出一个变量或者调用某种函数。在定界符内函数(一般定界符‘{}'包住)和其属性(同样在定界符内)将被处理和输出。例如: {function(函数名) attr1(变量名)=”val”(变量值) attr2=”val”}.

    {config_load file="colors.conf"}
    {include file="header.tpl"}
    {if $highlight_name}
      Welcome, font color="{#fontColor#}">{$name}!/font>
    {else}
      Welcome, {$name}!
    {/if}
    {include file="footer.tpl"}
    
    

    1、在模板里无论是内置函数还是自定义函数都有相同的语法。
    2、内置函数将在smarty内部工作,例如{if}、{section}和{strip},不能修改他们。
    3、自定义函数通过插件机制起作用,它们是附加函数。只要你喜欢,可以随意修改,你也可以自行添加。例如{html_options}和{html_select_date}。

    属性

    大多数函数都带有自己的属性以便于明确说明或者修改他们的行为,smarty函数的属性很像HTML中的属性。静态数值不需要加引号,但是字符串建议使用引号。可以使用普通smarty变量,也可以使用带调节器的变量作为属性值,它们也不用加引号。你甚至可以使用php函数返回值和复杂表达式作为属性值。

    Math

    数学运算可以直接作用到变量值。

    {$foo+1}
    {$foo*$bar}
    {$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"}
    {assign var="foo" value="`$foo+$bar`"}
    
    

    忽略smarty语法

    忽略Smarty对某些语句段的解析很有必要。一种典型的情况是嵌入到模板中的javascript或Css代码。原因在于这些语言使用与Smarty默认定界符‘{'和‘}'一样的符号。

    方法:一个避免出现这种情况的好习惯是把你的javascript/css代码分离出来保存成一个独立文件,再用html方法链接到模版中。这样做也有利于浏览器缓存脚本。如果你想把Smarty变量、方法嵌入到javascript/css,请看下面的运用。

    在Smarty模版,如果‘{'和‘}'大括号里包含有空格那么整个{}内容会被忽略,你可以设置Smarty类变量$auto_literal=false来取消这种规则。

    script>
    // the following braces are ignored by Smarty 以下大括号的内容会被Smarty忽略
    // since they are surrounded by whitespace 因为它们里面有空格
    function foobar {
    alert('foobar!');
    }
    // this one will need literal escapement 下面的内容会保持原义输出
    {literal}
    function bazzy {alert('foobar!');}
    {/literal}
    /script>
    
    

    {literal}…{/literal}块被用来忽略模版语法的解析,你也可以用{idelim},{rdelim}标签或{smarty.Idelim}{smarty.Idelim}{smarty.rdelim}变量来忽略个别大括号(译注:后面两种方法主要用来在模版中输出左右大括号)。

    更多关于Smarty相关内容感兴趣的读者可查看本站专题:《smarty模板入门基础教程》、《PHP模板技术总结》、《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • Smarty3配置及入门语法
    • 避免Smarty与CSS语法冲突的方法
    • Smarty中的注释和截断功能介绍
    • Smarty模板变量与调节器实例详解
    • smarty简单模板变量输出方法
    • Smarty保留变量用法分析
    • Smarty变量用法详解
    • PHP模板引擎Smarty内置变量调解器用法详解
    • PHP模板引擎Smarty自定义变量调解器用法
    • smarty自定义函数用法示例
    • PHP模板引擎Smarty内建函数详解
    上一篇:Smarty模板变量与调节器实例详解
    下一篇:PHP使用PDO、mysqli扩展实现与数据库交互操作详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Smarty模板语法详解 Smarty,模板,语法,详解,Smarty,