PHP模板学习--Smarty 字符串 变量修饰器

capitalize    使变量内容里的每个单词的第一个字母大写。 与PHP函数的 ucwords()相似。

                     参数1:带数字的单词是否也头字母大写。

                     参数2:设置单词内其他字母是否小写,如"aAa" 变成 "Aaa"。

cat               连接多个变量。

count_characters      计算变量内容里有多少个字符。参数:是否包含空格。

count_paragraphs    计算变量内容有多少个段落。没有参数

count_sentences      计算变量内容有多少个句子。 每个句子必须以点号、问号或者感叹号结尾。(.?!)。没有参数。

count_words              用于计算变量内容有多少个单词。没有参数。

date_format                将日期和时间格式化成strftime()的格式。 时间可以是unix的时间戳,DateTime 对象, mysql时间戳,或者月日年格式的字符串,与PHP函数strtotime()类似。

                                      $smarty.now取得当前时间。注意这里的“当前时间“是模板被编译时的系统时间,而不是实时系统时间。

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到单个空格或是指定字符串。参数:要转换成的字符串

strip_tags                   去除标记等任何包含在< 和 >中间的字符。参数:设置是否将标签替换成' ' 或者 ''

truncate                      截取字符串到指定长度,默认长度是80. 第二个参数可选,指定了截取后如果未达到指定长度,代替显示的字符。

                                     默认truncate会尝试按单词进行截取。如果你希望按字符截取(单词可能会被截断),需要设置第三个参数TRUE。

                                     第四个参数:当字符截取的长度刚好等于字符本身长度时,是否截取。 TRUE是不会截取。 注意如果设置为TRUE,单词的边界会被忽略。

wordwrap                   限制一行字符的长度(自动换行),默认是80个字符长度。 可选的第二个参数,可自定义换行字符,默认换行字符是 "\n"。

                                     默认情况下,是根据单词来换行的,也就是按英文语法的自动换行。 如果你希望按照字符来换行(边界的单词将拆开),

                                     那么可以设置 可选的第三个参数为TRUE,效果与PHP函数 wordwrap()一样。

复合修饰器:             可以复合使用多个修饰器。它们会按照复合的顺序来作用于变量,从左到右。必须以竖线(|)分隔。

在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|capitalize:true}

{$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:'&nbsp;'}

{$articleTitle|truncate:30:"...":true}


复合修饰器示例:

{$articleTitle|lower|spacify|truncate}

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

{$rticleTitle|lower|spacify|truncate:30:". . ."}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值