# 過濾器(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
- 表達式及運算符
- 函數