变量调节器作用于变量、自定义函数或字符串。变量调节器的用法是:‘|’符号右接调节器名称。变量调节器可接收附加参数影响其行为。参数位于调节器右边,并用‘:’符号分开。

调节器的例子:

{* Uppercase the title *}<h2>{$title|upper}</h2>{* Truncate the topic to 40 characters use ... at the end *}
Topic: {$topic|truncate:40:"..."}{* format a literal string *}
{"now"|date_format:"%Y/%m/%d"}{* apply modifier to a custom function *}
{mailto|upper address="me@domain.dom"}

如果你给数组变量应用单值变量的调节,结果是数组的每个值都被调节。 如果你只想要调节器用一个值调节整个数组,你必须在调节器名字前加上@符号。 例如: {$articleTitle|@count}(这将会在 $articleTitle 数组里输出元素的数目)

Smarty中有如下一些变量调节器以及作用:

  1. 首字母大写capitalize                 参数为bool值,为true带数字的单词也大写,为false带数字的              示例:{$title|capitalize}
  2. 字符串连接cat                             示例:{$title|cat:"content."}
  3. 日期格式化date_format(Unix时间戳格式)            示例:{$yesterday|date_format}                {$yesterday|date_format:":"%A, %B %e, %Y %H:%M:%S"}
  4. 为未赋值或为空的变量指定默认值default                   示例:{$title|default:"no title"}
  5. 转码escape(相反的unescape)                用于html转码,url转码,在没有转码的变量上转换单引号,十六进制转码,十六进制美化,或者JavaScript转码。默认是html转码。
  6. 小写lower 大写upper                      将变量字符串小(大)写                        示例:{$title|lower} {$title|upper}
  7. 所有的换行符将被替换成<br />, nl2br功能同PHP中的nl2br()函数一样。
  8. count_characters           计算变量内容里有多少个字符              参数为bool值,为true计算空格,为false不计算空格
  9. count_paragraphs          计算变量内容里有多少个段落
  10. count_sentence             计算变量里句子的数量
  11. count_words                  计算变量里的词数
  12. indent                             缩进每一行的字符串,默认是缩进4个空格。可选的参数可以设置缩进的空格数量。可选的第二个参数设置缩进使用的字符,如用"\t"来代替空格缩进
  13. regex_replace              使用正则表达式在变量中搜索和替换,语法来自Php的preg_replace()函数          
    参数顺序 类型 必选参数 默认值 说明
    1 string Yes n/a 正则表达式
    2 string Yes n/a 替换的字符
  14. replace                   一种在变量中进行简单的搜索和替换字符串的处理。等同于php的str_replace()函数
    参数顺序 类型 必选参数 默认值 说明
    1 string Yes n/a 需要搜索并替换的字符
    2 string Yes n/a 替换用的字符
  15. spacify                      插空是一种在变量的字符串的每个字符之间插入空格或者其他的字符(串)的方法。
    参数顺序 类型 必选参数 默认值 说明
    1 string No one space 插入字符间的字符
  16. string_format                       一种格式化字符串的方法,例如格式化为十进制数等等。实际运用的是php的sprintf()函数
    参数顺序 类型 必选参数 默认值 说明
    1 string Yes n/a 指定哪种格式 (sprintf)
  17. strip              用一个空格或一个给定字符替换所有重复空格、换行和制表符。(如果你希望转换模板文字内的空格,使用内置的{strip}函数。)
  18. strip_tags                去除<和>标签,包括在<和>之间的全部内容。
    参数顺序 类型 必选参数 默认值 说明
    1 bool No TRUE 设置是否将标签替换成' ' 或者 ''
  19. truncate                   从字符串开始处截取某长度的字符,默认是80个,你也可以指定第二个参数作为追加在截取字符串后面的文本串。该追加字串被计算在截取长度中。默认情况下,smarty会截取到一个词的末尾。如果你想要精确的截取多少个字符,把第三个参数改为"true" 。
    参数顺序 类型 必选参数 默认值 说明
    1 integer No 80 截取的长度
    2 string No ... 截取后替代显示的字符,该字符长度会被计算到截取长度内。
    3 boolean No FALSE 是否按单词截取FALSE,或是按字符截取TRUE
    4 boolean No FALSE 当字符截取的长度刚好等于字符本身长度时,是否截取。 FALSE也会截取。 TRUE是不会截取。 注意如果设置为TRUE,单词的边界会被忽略。
  20. wordwrap                   可以指定段落的列宽(也就是一行多少个字符,超过这个字符数换行),默认80。第二个参数可选,指定在约束点使用什么换行符,默认为"\n"。默认情况下smarty将截取到词尾,如果想精确到设定长度的字符,请将第三个参数设为ture。本调节器等同于php的wordwrap()函数。
    参数顺序 类型 必选参数 默认值 说明
    1 integer No 80 限定一行的长度。
    2 string No \n 换行符号
    3 boolean No FALSE 设置按单词换行(FALSE),或者按字符换行(TRUE)。
  21. to_charset      to_charset可将变量值由当前内置字符集转换到指定字符集。 它是from_charset修饰器的相反操作。
    参数顺序 类型 必选参数 允许取值 默认值 说明
    1 string No ISO-8859-1, UTF-8或者任何 mb_convert_encoding()函数允许的字符集名。 ISO-8859-1 转换到的字符集类型。

Smarty学习笔记——变量调节器相关推荐

  1. Smarty学习笔记(二)

    1.引用 {include file="xxx.xxx" sitename="xxx"} 向引入的文件传入变量: {include file="xxx ...

  2. Smarty之常用变量调节器

    变量调节器就是对变量进行调节的函数,对变量进行格式化输出 语法: {$var|调节器1:参数1|调节器2:参数2|-} 语法说明: 1.var就是要修饰的变量 2."|"用于分割各 ...

  3. JavaScript学习笔记 - 变量、作用域与内存问题

    本文记录了我在学习前端上的笔记,方便以后的复习和巩固. 4.1基本类型和引用类型的值 ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型指的是简单的数据段,而引用类 ...

  4. Shell学习笔记---变量赋值与运算(原创)

    声明:本文仅作学习研究使用,多数语句都是为了介绍语法而构造的. #!/bin/bash #Filename:prameter_parctise2 #Datetime:2010_12_24 09:24 ...

  5. aardio学习笔记-变量与常量

    变    量 定义:在程序运行过程中,用来存储数据值并且其值能被改变的对象称为变量. 要求: 1.变量名开始字符不能为数字. 2.变量名包含中文时,中文字符前面不能有字母或数字. 3.可以使用美元符号 ...

  6. Python学习笔记——变量和字符串

    目录 导引 案例一: 赋值,输出 案例二:赋值,计算,输出 案例三:赋值,拼接,输出 案例四:赋值,输出(转义字符的使用) 案例五:赋值,输出(多个转义字符的使用) 案例六:赋值,输出(赋值多行) 导 ...

  7. python常量变量和对象_Python学习笔记——变量和常量

    一.变量 变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型. 在Python中,不需要事先声明变量名和类型,直接赋值即可创建各种类型的对象变量 ...

  8. SV学习笔记—变量及数组随机化约束常犯的错误

    目录 1.有符号变量导致的随机化错误 2.变量溢出导致的随机化错误 3.数组的约束 3.1约束数组的size函数 3.2约束数组的sum函数 4.数组约束常犯错误 4.1有符号变量导致的错误 4.2溢 ...

  9. Go语言学习笔记——变量

    变量 变量使用方式 指定变量类型,声明若不赋值,使用默认值 var i int 根据值自行判定变量类型 var num = 10.11 省略var name := "tom" // ...

最新文章

  1. 浅析枚举类型(Enumerated types)
  2. yii2 Html::a
  3. CentOS 7 安装nexus
  4. Java工程师必备技能
  5. LAMP配置虚拟目录
  6. 【Learning】 动态树分治
  7. Java游戏编程不完全详解-2(1万2千字吐血推荐)
  8. 【二级等保】二级等保怎么做?价格怎么样?贵吗?
  9. CVPR等会议论文集检索下载与数据库资源使用
  10. 机器学习和人工智能之间的区别
  11. go---token解析与构造
  12. js连接蓝牙打印机打印一维码和二维码
  13. body加背景图片没反应_css设置背景图片不显示问题
  14. java录入会员信息_Java编程语言基础 第三章 实现会员信息录入功能
  15. docekr unable to delete d38d835588d5 (must be forced) - image is referenced in multiple repositories
  16. 如何删除掉设备和驱动器下百度网盘的图标
  17. string大小写转换
  18. android图片压缩不失真实战
  19. ZStack - 创建云主机
  20. 如何实现在退休时有足够的钱供老年任性花费?(复利年金通胀综合案例)

热门文章

  1. 如何批量在视频上加logo?
  2. WaSP的简要历史以及为何Web标准很重要
  3. POCO C++ Libraries 学习
  4. 进行渗透测试的详细检测方法
  5. 拥有着12万亿市场的部件,主角:射频
  6. 数值分析的matlab答案,Matlab作业3(数值分析)答案.doc
  7. 一级减速器装配图和零件图——课程设计
  8. 一个方法教你获得积分
  9. 神犇营-26-最大数输出
  10. VirtuaNES.v0.97源码探究2 图形查看器