capitalize 使变量内容里的每个单词的第一个字母大写。 与PHP函数的 ucwords()相似。
参数1:带数字的单词是否也头字母大写。
参数2:设置单词内其他字母是否小写,如"aAa" 变成 "Aaa"。
cat 连接多个变量。
count_characters 计算变量内容里有多少个字符。参数:是否包含空格。
count_paragraphs 计算变量内容有多少个段落。没有参数
count_sentences 计算变量内容有多少个句子。 每个句子必须以点号、问号或者感叹号结尾。(.?!)。没有参数。
count_words 用于计算变量内容有多少个单词。没有参数。
date_format 将日期和时间格式化成strftime()的格式。 时间可以是unix的时间戳,DateTime 对象, mysql时间戳,或者月日年格式的字符串,与PHP函数strtotime()类似。
default 为变量设置默认值。 当变量是unset或者empty的字符串时,默认值将显示。 必须要有一个参数。
escape 可用于将变量编码或转换成 html, url, 单引号, 十六进制, 十六进制实体, javascript 和 电邮地址。 默认是:html。
unescape 可以解码entity, html 和 htmlall等的编码。 它与escape 修饰器的效果刚好相反。
to_charset 可将变量值由当前内置字符集转换到指定字符集。 它是from_charset 修饰器的相反操作。
from_charset 转换变量到内置字符集。 与to_charset 修饰器刚好相反。
indent 缩进每一行的字符串,默认是缩进4个空格。 可选的参数可以设置缩进的空格数量。 可选的第二个参数设置缩进使用的字符,如用 "\t" 来代替空格缩进。
参数:1.设置缩进多少空格 2.设置用什么字符来进行缩进。默认:空格
lower 将变量值转成小写字母。 等同于PHP的 strtolower()函数。
upper 将变量值转成小写字母。 等同于PHP的 strtoupper()函数。
nl2br 将变量值中的"\n"回车全部转换成HTML的 <br />。 等同于PHP的 nl2br()函数。
regex_replace 用正则表达式搜索和替换变量值。 使用PHP的 preg_replace()函数进行。
参数:1.正则表达式 2.替换成的字符
replace 对变量进行简单的搜索和替换。 等同于PHP函数的 str_replace()。
spacify 会在变量的字符串中每个字符之间插入空格。 你可以设置插入的是空格或者别的字符。参数:要插入的字符。
string_format 格式化字符串,如浮点数等。 使用 sprintf()的PHP函数来进行。参数示例:'%.2f'
strip 转换字符串中的连续空格,回车和tab到单个空格或是指定字符串。参数:要转换成的字符串
truncate 截取字符串到指定长度,默认长度是80. 第二个参数可选,指定了截取后如果未达到指定长度,代替显示的字符。
默认truncate会尝试按单词进行截取。如果你希望按字符截取(单词可能会被截断),需要设置第三个参数TRUE。
第四个参数:当字符截取的长度刚好等于字符本身长度时,是否截取。 TRUE是不会截取。 注意如果设置为TRUE,单词的边界会被忽略。
wordwrap 限制一行字符的长度(自动换行),默认是80个字符长度。 可选的第二个参数,可自定义换行字符,默认换行字符是 "\n"。
默认情况下,是根据单词来换行的,也就是按英文语法的自动换行。 如果你希望按照字符来换行(边界的单词将拆开),
复合修饰器: 可以复合使用多个修饰器。它们会按照复合的顺序来作用于变量,从左到右。必须以竖线(|)分隔。
在smarty中可以使用PHP函数,也可以使用自定义的函数。
格式为:
函数名|参数1:参数2...
例如:
{$smarty.session.user|substr:0:3|strtoupper|red}
substr 参数0为开始截取的位置,3为截取长度;
strtoupper函数只有一个参数,因此不必传参;
最后一个red为自定义函数:
function red($str){
return "<span style=\"color:red\">{$str}</span>";
}
要使用自定义函数,只要在$smarty->display()的php脚本中将自定义函数引入即可。
注:使用修饰器时格式为:{变量|修饰器:参数1 : 参数2 : ... : 参数n}
格式示例:
{$articleTitle|cat:' yesterday.'}
{$articleTitle|count_characters:true}
{$articleTitle|count_sentences}
{$yesterday|date_format:"%A, %B %e, %Y"}
{$email|default:'No email address available'}
{$articleTitle|indent:1:"\t"}
{$articleTitle|regex_replace:"/[\r\t\n]/":" "}
{$articleTitle|replace:'Garden':'Vineyard'}
{$number|string_format:"%.2f"}
{$articleTitle|strip:' '}
{$articleTitle|truncate:30:"...":true}
复合修饰器示例:
{$articleTitle|lower|spacify|truncate}
{$articleTitle|lower|truncate:30|spacify}
{$rticleTitle|lower|spacify|truncate:30:". . ."}