# 过滤器(Filters)
输出变量的时候可以通过为变量添加过滤器来过滤/格式化变量
操作符 | 用于为变量添加过滤器
~~~
{{ product.name|e }}
{{ product.name|striptags }}
{{ product.name|capitalize|trim }}
~~~
以下是Volt模板内置的过滤器列表:
| 过滤器 | 描述 |
| :-: | :-: |
| trim | 删除左右两侧多余的字符 |
| left\_trim | 删除左侧多余的字符 |
| right\_trim | 删除右侧多余的字符 |
| striptags | 删除变量中的html标记 |
| slashes | 在字符串中的单引号(')、双引号(")、反斜线(\\)与 NUL字符前加上反斜线 |
| stripslashes | 去除字符串中的转义反斜线 |
| capitalize | 将字符串中每个单词的首字母转换为大写 |
| lower | 将变量中的字符转换为小写 |
| upper | 将变量中的字符转换为大写 |
| length | 计算字符长度或数组与对象的数量 |
| nl2br | 在字符串所有新行之前插入 HTML 换行标记 |
| sort | 对数组进行排序并保持索引关系 |
| keys | 返回数组的所有键值 |
| join | 将一个数组分割为字符串 |
| format | 把格式化的字符串写入变量中(sprintf) |
| json\_encode | 对变量进行 JSON 编码 |
| json\_decode | 对 JSON 格式的字符串进行解码 |
| abs | 取绝对值 |
| url\_encode | 编码 URL 字符串 |
| default | 为变量设置一个默认值(如果变量为空或未设置) |
| convert\_encoding | 转换字符编码 |
`trim`
输入:
~~~
{# 默认不传参数为删除左右两侧的空格 #}
{% set name=' 小明 ' %}
{{ name|trim }}
{# 传参数则为删除左右两侧参数中的字符串 #}
{% set name='aaa小明aaa' %}
{{ name|trim('aaa') }}
~~~
输出:
~~~
小明
小明
~~~
`left_trim`
输入:
~~~
{% set name=' 小明 ' %}
{{ name|left_trim }}
~~~
输出:
~~~
小明
~~~
`right_trim`
输入:
~~~
{% set name=' 小明 ' %}
{{ name|right_trim }}
~~~
输出:
~~~
小明
~~~
`striptags`
输入:
~~~
{% set name='小明' %}
{{ name|striptags }}
~~~
输出:
~~~
小明
~~~
`slashes`
输入:
~~~
{% set name='"小明"' %}
{{ name|slashes }}
~~~
输出:
~~~
\"小明\"
~~~
`capitalize`
输入:
~~~
{% set name='my name' %}
{{ name|capitalize }}
~~~
输出:
~~~
My Name
~~~
`lower`
输入:
~~~
{% set name='MY Name' %}
{{ name|lower }}
~~~
输出:
~~~
my name
~~~
`upper`
输入:
~~~
{% set name='my name 你好' %}
{{ name|upper }}
~~~
输出:
~~~
MY NAME 你好
~~~
`length`
输入:
~~~
{% set data=['小明','小红','小强'] %}
{{ data|length }}
{% set data='小强' %}
{{ data|length }}
{% set data='abcd' %}
{{ data|length }}
~~~
输出:
~~~
3
2
4
~~~
`nl2br`
输入:
~~~
{% set name='a
b
c' %}
{{ name|nl2br }}
~~~
输出:
~~~
a
b
c
~~~
`sort`
输入:
~~~
{% set data=['a':3,'b':1,'c':2] %}
{% set data=data|sort %}
{{ dump(data) }}
~~~
输出:
~~~
array(3) { ["b"]=> int(1) ["c"]=> int(2) ["a"]=> int(3) }
~~~
`keys`
输入:
~~~
{% set data=['a':3,'b':1,'c':2] %}
{% set data=data|keys %}
{{ dump(data) }}
~~~
输出:
~~~
array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" }
~~~
`join`
输入:
~~~
{% set data=['a':3,'b':1,'c':2] %}
{{ data|join(",") }}
~~~
输出:
~~~
3,1,2
~~~
`format`
输入:
~~~
{% set myname='xiaoming' %}
{{ "My real name is %s"|format(myname) }}
~~~
输出:
~~~
My real name is xiaoming
~~~
`json_encode`
用法示例:
~~~
{% set encoded = data|json_encode %}
~~~
`json_decode`
用法示例:
~~~
{% set decoded = '{"one":1,"two":2,"three":3}'|json_decode %}
~~~
`abs`
用法示例:
输入:
~~~
{% set a = 2 %}
{{ a|abs }}
{% set a = -3 %}
{{ a|abs }}
~~~
输出:
~~~
2
3
~~~
`url_encode`
用法示例:
输入:
~~~
{% set url = 'http://www.baidu.com' %}
{{ url|url_encode }}
~~~
输出:
~~~
http%3A%2F%2Fwww.baidu.com
~~~
`default`
用法示例:
输入:
~~~
{% set name = '小红' %}
{{ name|default('小明') }}
{% set name = '' %}
{{ name|default('小明') }}
~~~
输出:
~~~
小红
小明
~~~
`convert_encoding`
用法示例:
~~~
{# 从EUC-JP编码转换为UTF-7 #}
{{ "abasds"|convert_encoding("UTF-7", "EUC-JP") }}
~~~
- 序言
- 基础
- 安装
- 规范
- 目录
- 配置
- 架构
- 入口文件
- 伪静态配置
- Facade
- 使用行为
- 路由
- 路由定义
- 控制器
- 定义控制器
- 数据库
- 连接数据库
- 链式操作
- where
- builder
- field
- limit
- page
- order
- group
- find
- select
- value
- count
- sum
- average
- maximum
- minimum
- column
- update
- insert
- delete
- begin
- rollback
- commit
- left
- right
- inner
- for_update
- shared_lock
- cache
- 构造器
- 查询
- 添加
- 更新
- 删除
- 模型
- 创建模型
- 自动时间戳
- 模型关联
- 模型事件
- 数据转换
- 软删除
- 视图
- 模板
- 日志
- 调试
- 验证
- CLI命令行
- 标准
- 命名规范
- 语法规范
- 注释规范
- 设计模式
- 开发提示
- 数据字典
- Markdown使用文档
- volt模板引擎
- 简介
- 注释
- 变量
- 过滤器
- 流程控制
- 循环语句for
- 条件判断语句if
- 表达式及运算符
- 函数