smarty30中文手册文档.docx
- 文档编号:599636
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:14
- 大小:18.43KB
smarty30中文手册文档.docx
《smarty30中文手册文档.docx》由会员分享,可在线阅读,更多相关《smarty30中文手册文档.docx(14页珍藏版)》请在冰豆网上搜索。
smarty30中文手册文档
4、Smarty语法基础篇
4.1 变量
模板中的变量主要来源有三种。
1、是由原php文件中分配过来的。
$smarty->assign('name','韩灵稚'); #在源php文件中分配
你好, {$name}#在模板文件中使用
2、是由配置文件中分配过来的。
$smarty->configLoad(“configs/my.conf”) #在源php文件中载入配置文件,也可以在模板中载入
{#fontcolor#}; font-size: {#fontsize#};">这是{#gv#}
#在模板文件中使用
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的一个元素
你好, {$name}#在模板文件中使用
【相关函数】
$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中获得这些变量。
1、请求访问变量(Request variables)
$smarty.get.变量 #显示通过get方式传过来的指定变量的值。
$smarty.post.变量 #显示通过post方式传过来的指定变量的值。
$smarty.cookies.变量#显示通过cookie中指定变量的值。
$ #显示server变量值,phpinfo()中$_SERVER系列变量
$ #显示系统环境变量值,phpinfo()中$_ENV系列变量
$smarty.session.变量#显示session中指定变量的值
$smarty.request.变量#显示通过post、get、cookie中指定变量的值。
2、时间访问变量
{$smarty.now}#显示unix系统时间戳,需要变量调节器格式化,参看4.2.4,也可以使使用{time()}
3、常量访问变量
{$smarty.const._MY_CONST_VAL} #访问php中的常量包括自定义常量和系统常量
4、{$smarty.capture}
参看4.4.1
5、配置访问变量
{$smarty.config.配置变量} #访问配置变量,等同于 #配置变量# 方式
6、{$smarty.section}, {$smarty.foreach}
参看
7、{$smarty.template} #显示模板路径和名称
4.3 变量操作
{$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,并赋值。
最简单的访问方法是 {$var},配置变量访问是{#configvar#}
数组变量的访问可以是{$array[1][1]},也可以支持{$
对象的访问{$object->method1($x)},也支持对象链,{$object->method1($x)->method2($y)}
字符串与变量的混合输出
{"大家好,我是$name
"} #Smarty可以识别嵌入在双引号中的变量,
只要此变量只包含数字、字母、下划线。
{"大家好,我是`$name[$obj->a]`
"} #中括号[]、句号. 对象相关 -> ,必须将变量用两个`符号括起。
与php相同,都支持在变量名称中使用变量,smarty还支持使用表达式。
$foo #一个普通的变量
$foo_{$bar} #变量名中包含变量
$foo_{$x+$y} #变量名中可以支持表达式
$foo_{$bar}_buh_{$blar} #变量名包含多个变量
变量调节器主要是对变量进行格式化。
{$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“转换成”
“
{$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自动加入上面两个调节器
同时也可以定义自己的调节器,详情请参考
4.4 内建函数4.4.1 capture
capture函数的作用是捕获模板输出的数据并将其存储到一个变量里,而不是把它们输出到页面.
任何在 {capture name="foo"}和{/capture}之间的数据将被存储到变量$foo中。
这样可以根据实际情况,选择性的输出一些内容,输出的语法是$smarty.capture.变量。
{capture name="bottom"}
{include file="bottom.tpl" nr="这是底部的内容"}
{/Capture}
{if true } #进行条件判断,确定是否输出
{$
{/if}
4.4.2 config_load
参看3.4
4.4.3 foreach,foreachelse
foreach 适合于简单数组(元素类型相同)
{foreach name=名称 item=内容 key=键 from=数组} #2.0中的用法,3.0沿用
正常执行
{foreachelse}
From变量数组没有值时(0个元素)执行。
{/foreach}
例子:
{foreach name=for1 item=num from=$foo}
{$ />
{if is_array($num)}
{foreach name=for2 item=num2 key=key2 from=$num}
{$str|cat:
$"个元素:
"|cat:
$num2|cat:
" key是"|cat:
$key2|indent:
1:
"."}
{/foreach}
{/if}
{foreachelse}
{$ />
{/foreach}
foreach的内置变量
$ #(循环内部使用)显示当前循环的索引,如果数组为空,返回-1
$ iteration #(循环内部使用)显示当前的循环次数
$#(循环内部使用)如果为第一次循环,返回true
$#(循环内部使用)如果为最后一次循环,返回true
$#(循环内外部使用)显示循环的总次数
foreach 在3.0中做一定的升级,语法更接近于php,内置变量也更简洁。
{foreach $myarray as $var}...{/foreach}
foreach的内置变量,均可在内外部使用
$var@key #输出元素的键值,简单为012,关联为具体键值。
$var@iteration #显示当前的循环次数,外部使用为最后一次
$var@index #显示当前循环的索引,如果数组为空,返回-1,外部使用为最后一次
$var@total #显示循环的总次数
$var@first #如果为第一次循环,返回true
$var@last #如果为最后一次循环,返回true
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- smarty30 中文 手册 文档