PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 开发编程 > Smarty教程 > 正文

    smarty3从入门到精通详解(二)

    作者:admin来源:PHP自学中心浏览:时间:2020-09-30 00:07:50我要评论
    导读:4、Smarty语法基础篇4.1 变量模板中的变量主要来源有三种。4.1.1、是由原php文件中分配过来的。$smarty->assign(‘name’,&rsqu...
    4、Smarty语法基础篇
     

    4.1 变量

    模板中的变量主要来源有三种。

    4.1.1、是由原php文件中分配过来的。

    $smarty->assign(‘name’,’韩灵稚’);    #在源php文件中分配

    <span>你好, {$name}</span> #在模板文件中使用

    4.1.2、是由配置文件中分配过来的。

    $smarty->configLoad(“configs/my.conf”)  #在源php文件中载入配置文件,也可以在模板中载入

    <span style=”color:{#fontcolor#}; font-size:{#fontsize#};”>这是{#gv#}</span><br />  #在模板文件中使用

    4.1.3、是在模板文件中创建的。

    {assign var=”name” value=”韩灵稚” nocache=”false”scope=”global”}

    #在模板中定义的变量,如果之前定义了相同的变量,则以最后一次定义为准。

    {$name=”韩灵稚”}    #给变量直接赋值,如果该变量原来不存在,自动创建,3.0新特性。

    {assign var=foo value=[1,2,3]}     #定义普通数组变量

    {assign var=foo value=['y'=>'yellow','b'=>'blue']}    #定义关联数组

    {assign var=foo value=[1,[9,8],3]}  #定义数组中的数组

    {$foo[]=1}    #增加变量数组$foo的一个元素

    <span>你好, {$name}</span> #在模板文件中使用

    【相关函数】

    $smarty->getVariable($variable, $_ptr = null, $search_parents = true,

    $error_enable = true) #获得变量,仅限于获得第一种方式的变量

    $smarty->getTemplateVars($varname = null, $_ptr = null, $search_parents = true)

    #获得变量,可以获得第一种和第三种方式的变量(第三种方式变量scope必须为global或者parent),

    如果想获得配置变量参看3.4

     

    4.2 Smarty保留变量

    Smarty系统中保留了一些内置变量,可以快速访问相应的变量。但是不能再源php中获得这些变量。

    4.2.1、请求访问变量(Request variables)

    $smarty.get.变量       #显示通过get方式传过来的指定变量的值。

    $smarty.post.变量      #显示通过post方式传过来的指定变量的值。

    $smarty.cookies.变量     #显示通过cookie中指定变量的值。

    $smarty.server.SERVER_NAME   #显示server变量值,phpinfo()中$_SERVER系列变量

    $smarty.env.PATH   #显示系统环境变量值,phpinfo()中$_ENV系列变量

    $smarty.session.变量       #显示session中指定变量的值

    $smarty.request.变量     #显示通过post、get、cookie中指定变量的值。

    4.2.2、时间访问变量

    {$smarty.now}   #显示unix系统时间戳,需要变量调节器格式化,参看4.2.4,也可以使使用{time()}

    4.2.3、常量访问变量

    {$smarty.const._MY_CONST_VAL}   #访问php中的常量包括自定义常量和系统常量

    4.2.4、{$smarty.capture}

    4.2.5、配置访问变量

    {$smarty.config.配置变量}   #访问配置变量,等同于 #配置变量# 方式

    4.2.6、{$smarty.section}, {$smarty.foreach}

    参看4.4.3和4.4.4

    4.2.7、{$smarty.template}   #显示模板路径和名称

     

    4.3 变量操作

    4.3.1赋值

    {$name = 新值} 比如,{$name=”我的名字叫韩灵稚”}   #新值将替代原值,如果原来无该变量,

    则创建变量并赋值。配置变量无法重新赋值。

    {$name = 表达式} 比如,{$name = 1+2+$foo['bar']}  #$foo['bar']的值为1, 变量值为4

    {$foo['bar']=1}    #给数组的一个元素赋值

    {$foo['bar']['blar']=1}   #给多维数组的一个元素赋值

    {$foo = array(1,2,3,4,5)}   #利用php函数创建变量$foo,并赋值。

    4.3.2访问

    最简单的访问方法是 {$var},配置变量访问是{#configvar#}

    数组变量的访问可以是{$array[1][1]},也可以支持{$array.1.1}

    对象的访问{$object->method1($x)},也支持对象链,{$object->method1($x)->method2($y)}

    字符串与变量的混合输出

    {“大家好,我是$name<br />”}   #Smarty可以识别嵌入在双引号中的变量,

    只要此变量只包含数字、字母、下划线。

    {“大家好,我是`$name[$obj->a]`<br />”}    #中括号[]、句号. 对象相关 -> ,必须将变量用两个`符号括起。

    4.3.3变量名变量

    与php相同,都支持在变量名称中使用变量,smarty还支持使用表达式。

    $foo         #一个普通的变量

    $foo_{$bar}   #变量名中包含变量

    $foo_{$x+$y}  #变量名中可以支持表达式

    $foo_{$bar}_buh_{$blar}   #变量名包含多个变量

    4.3.4变量调节器

    变量调节器主要是对变量进行格式化。

    {$var|capitalize}   #将变量首字大写

    {$var|count_characters:false}   #计算变量里的字符数,false为不计算空格。

    若变量为数值则为数字和小数点等其他运算符的总和

    {$var| cat:var2} #将var2连接到var,若为数值以字符串处理。

    {$var| count_paragraphs} #计算变量里的段落数量,已“\n“区分

    {$var| count_sentences} #计算变量中句子的数量,不好使

    {$var| count_words} #计算变量中单词的数量 已非字母和数字的字符分割统计

    {$var| date_format :”%H:%M:%S” } #格式化变量日起,具体参数看chm文档

    {$var| default:”no title” } #当变量为空时,为变量提供一个默认值

    {$var| escape:url}     #对变量值进行转码,具体参数看chm文档

    {$var| indent:10:”*”}    #对变量指定具体字符进行缩进,若为空格在html中不会显示出来,具体参数看chm文档

    {$var| lower}   #将变量小写

    {$var| nl2br }   #将变量中的“\n“转换成”<br />“

    {$var| regex_replace:”/[\r\t\n]/”:” “} #将变量中的符合正则的内容替换成指定内容

    {$var| replace:”Garden”:”Vineyard”} #将变量中要求的内容替换成指定内容

    {$var| spacify:”^^”} #将变量字符与字符之间插入指定内容,包括空格

    {$var|string_format:”%d”}   #将变量中的内容格式化,格式化参数同printf

    {$var| strip: “*”}  #用一个空格或一个给定字符替换所有重复空格,换行和制表符

    {$var| strip_tags} #删除变量中的html标记, 去除<和>标签,包括在<和>之间的任何内容

    {$var| truncate:30:”…”:true}    #截取变量的到规定的长度,具体参数看chm文档

    {$var| upper}    #将变量大写

    {$var| wordwrap:30:”\n”:true}    #规定指定的长度强制换行,具体参数看chm文档

    修改器可以复合组合。

    {$articleTitle|lower|spacify|truncate:30:”. . .”}

    设置默认变量调节器

    $smarty->getDefault_modifiers()    #默认为空数组

    $smarty->setDefault_modifiers(array(‘spacify:”^^”’,’capitalize’)   #设置变量的默认调节器,必须用array

    {name}    #模板变量name自动加入上面两个调节器

    同时也可以定义自己的调节器,详情请参考6.7.4和6.8.4

    4.2.5变量作用域(未写)

    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-84-4964-1.html
    相关热词搜索: