最近项目中使用到了smarty,先总结一点常用的功能,以备不时之需。
1、smarty循环计次:
foreach (array_expression as $key => $value)
from <=> array_expression;item <=> $value;key <=> $key。
name 属性可以任意指定(字母、数字和下划线的组合)。
foreach 可以嵌套,但必须保证嵌套中的 foreach 名称唯一。
from 属性(通常是数组)决定循环的次数。
foreachelse 语句在 from 属性没有值的时候被执行。(from 属性所指定的值为空时,可用 foreachelse 语句指定——否则-干什么)
foreach 循环有自己的变量名,使用该变量名可以访问该循环. 使用方法为 {$smarty.foreach.foreachname.varname},其中 foreachname 即在 foreach 中指定的 name 属性。
例子
{foreach from=$variable key=key name=name iteam=value}
{$variable|@count} // 获取数组长度
{$smarty.foreach.loop.iindex} // 获取当前循环数组元素下标,以0开始
{$smarty.foreach.loop.iteration} // 获取当前循环次数,以1开始
{$smarty.foreach.loop.first} // 为true时,标记循环第一次执行
{$smarty.foreach.loop.last} // 为true时,标记循环最后一次执行
{$smarty.foreach.name.last} // 为true时,标记循环最后一次执行
{$smarty.foreach.loop.show} // 当前是否显示
{$smarty.foreach.loop.total} // 循环次数
{/foreach}
2、smarty格式化日期:
{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
3.smarty模板变量
capitalize [首字母大写],示例:{$smarty.get.name|capitalize}
count_characters [计算字符数],示例:{$smarty.get.name|count_characters}
cat [连接字符串],示例:{$smarty.get.name|cat:'welcome to www.111com.net'},连接两个变量如:{$smarty.get.name|cat:$smarty.get.password}
count_paragraphs [计算段落数],示例:{$smarty.get.name|count_characters}
count_sentences [计算句数],示例:{$smarty.get.name|count_sentences}
count_words [计算词数],示例:{$smarty.get.name|count_words}
date_format [时间格式],示例:{$smarty.server.request_time|date_format:"%Y-%m-%d %H:%M:%S"}或者{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"},显示格式如:2012-7-31 11:01:21
default [默认],示例:{$smarty.get.name|default:'111com.net'},意思是当没有接受到name参数或者接收到的name参数值为空的时候,使用111com.net代替这个值。
escape [转码],示例:{$smarty.get.name|escape:'url'} ?
indent [缩进],示例:{$smarty.get.name|indent:10:' '},段落首行缩进,这里示例是缩进了十个空格表示的字符。作用类似于css里面的text-indent。
lower [小写],示例:{$smarty.get.name|lower}
upper [大写],示例:{$smarty.get.name|upper}
nl2br [将变量中的n(换行符)替换成
],示例:{$smarty.get.name|nl2br}
regex_replace [正则替换],示例:{$smarty.get.name|replace:"/[rtn]/":"111com.net"},将变量中的符合正则的内容替换成指定内容
replace [替换],示例:{$smarty.get.name|replace:"baidu.com":"111com.net"},将变量中要求的内容替换成指定内容,示例的意思是将变量中所有baidu.com替换为111com.net。
spacify [插空],示例:{$smarty.get.name|spacify:"^^"},将变量字符与字符之间插入指定内容,包括空格。
string_format [字符串格式化],示例:{$smarty.get.namestring_format:"%d"},该操作是将变量中的内容格式化,格式化参数类同php的printf。
strip [去除(多余空格)],示例:{$smarty.get.name|strip:" "},如果存在第一个参数的话,则将空格替换为指定的内容,示例的意思是将空格都替换为" ";
strip_tags [去除html标签],示例:{$smarty.get.name|strip_tags}
truncate [截取],示例:{$smarty.get.name|truncate:10:'...'},示例的意思是截取10个字符,超出的部分用"..."代替,第二个参数为空的话,超出部分就直接省略了。
wordwrap [行宽约束],示例:{$smarty.get.name|wordwrap:30:"n":true},将超过指定的长度的内容强制换行
今天就列举到此了,以后会慢慢补充和完善,更为具体的Smarty模板变量操作符知识大家可以参考Smarty手册!