本文主要介绍了Smarty模板的语法,分析了Smarty模板的基本语法和使用技巧,如注释、变量、引号、函数等。有例子。有需要的可以参考一下。
本文阐释了Smarty模板语法。分享给你,供你参考,如下:
所有模板标签都用分隔符括起来,默认情况下是“{”和“}”。
模板注释
注释用星号括起来,两边的星号用分隔符“{}”括起来,比如{smarty *}。
Smarty注释不会出现在模板文件的最终输出中,与(翻译注意:html注释在页面源代码中可见,smarty注释不可见)不同。
下面这个简单的代码片段{smarty}在源代码中是不可见的,但是源代码是可见的。
超文本标记语言
头
tltlesmarty/tltle
身体
{*smarty*}
自作聪明的人
!自作聪明
/body
/头
/html
变量初步
变量以美元符号开头,可以包含数字、字母和下划线,这与php非常相似。(注意:profile变量是一个不以美元符号开头的变量,可以包含数字、字母和下划线,这与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=funvalue=[1=' one ',2=' tow ']}//数组定义
{ $ fun=stlen $ a)}
{fun=function($a,$b)} //用作函数参数。
{$array.a=1}
{ $ array . a . b . c($ array[a][b][c])=1 }//数组索引赋值
{ $ object-method 1($ x)-method 2($ y)}//对象链
双引号中插入变量
1.Smarty可以识别嵌入在双引号中的变量,只要这个变量只包含数字、字母、下划线和括号[]。
2.对于句点、数组符号和对象引用等。此变量必须使用两个反引号`。
3.Smarty3增加了双引号来支持Smarty标签。在需要包含调节器变量、插件和php函数返回值的情况下,它非常有用。
{ function var=' test $ foo test ' }//Identify $ foo
{ func var=' test $ foo _ bar test ' }//Identify $ foo _ bar
{ func var=' test ` $ foo[0]` test ' }//Identify $ foo[0]
{ func var=' test ` $ foo[bar]` test ' }//Identify $ foo[bar]
{func var='test $foo.bar test'} //识别$foo(不识别$foo.bar)
{ func var=' test ` $ foo . bar ` test ' }//Identify $ 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}
欢迎光临,font color=' { # font color # } ' { $ name }!/font
{else}
欢迎,{$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方法链接到模板上。这也有助于浏览器缓存脚本。如果你想在javascript/css中嵌入Smarty变量和方法,请看下面的应用。
在Smarty template中,如果' { '和' } '花括号包含空格,整个{}内容将被忽略。您可以设置Smarty类变量$auto_literal=false来取消此规则。
脚本
//下面的大括号被Smarty忽略。Smarty将忽略下面的大括号。
//因为它们中间有空格,所以用空白圆整。
功能工具栏{
alert('foobar!');
}
//这个下面的内容会需要字面转义会保持原来的意思输出。
{literal}
函数bazzy {alert('foobar!');}
{/literal}
/脚本
{literal}…{/literal}块用于忽略模板语法的分析。您也可以使用{idelim}、{rdelim}标签或{smarty。Idelim}、{smarty。Idelim}、{smarty.rdelim}变量来忽略单个大括号(注意:后两种方法主要用于输出模板中的左右大括号。
对更多Smarty相关内容感兴趣的读者可以查看我们的专题:《smarty模板入门基础教程》、《PHP模板技术总结》、《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》和《php+mysql数据库操作入门教程》。
我希望这篇文章能帮助你设计基于smarty模板的PHP程序。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。