What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
escape
可用于将变量编码或转换成
html
,
url
, 单引号
,
十六进制
, 十六进制实体
,
javascript
和 电邮地址
。
默认是:html
。
参数顺序 | 类型 | 必选参数 | 允许取值 | 默认值 | 说明 |
---|---|---|---|---|---|
1 | string | No |
html , htmlall ,
url ,
urlpathinfo , 单引号 ,
十六进制 , 十六进制实体 ,
javascript , 电邮地址
|
html |
这是escape转换后的格式 |
2 | string | No |
ISO-8859-1 , UTF-8 ,
和其他
htmlentities() 支持的字符集
|
UTF-8 |
传递给htmlentities()的字符集类型 |
3 | boolean | No | FALSE |
TRUE |
两次转换实体,& 到 & (仅在 html 和 htmlall 使用) |
Example 5.10. escape
<?php $smarty->assign('articleTitle', "'Stiff Opposition Expected to Casketless Funeral Plan'" ); $smarty->assign('EmailAddress','smarty@example.com'); ?>
下面是escape
的例子和输出:
{$articleTitle} 'Stiff Opposition Expected to Casketless Funeral Plan' {$articleTitle|escape} 'Stiff Opposition Expected to Casketless Funeral Plan' {$articleTitle|escape:'html'} {* escapes & " ' < > *} 'Stiff Opposition Expected to Casketless Funeral Plan' {$articleTitle|escape:'htmlall'} {* escapes ALL html entities *} 'Stiff Opposition Expected to Casketless Funeral Plan' <a href="?title={$articleTitle|escape:'url'}">click here</a> <a href="?title=%27Stiff%20Opposition%20Expected%20to%20Casketless%20Funeral%20Plan%27">click here</a> {$articleTitle|escape:'quotes'} \'Stiff Opposition Expected to Casketless Funeral Plan\' <a href="mailto:{$EmailAddress|escape:"hex"}">{$EmailAddress|escape:"hexentity"}</a> {$EmailAddress|escape:'mail'} {* this converts to email to text *} <a href="mailto:%62%6f%..snip..%65%74">bob..snip..et</a> {'mail@example.com'|escape:'mail'} smarty [AT] example [DOT] com
Example 5.11. escape的另一个例子
{* "rewind"参数是当前URL地址 *} <a href="$my_path?page=foo&rewind=$my_uri|urlencode}">click here</a>
这个方法很适合用在电邮地址上,另外可以参见
{mailto}
{* 电邮地址编码 *} <a href="mailto:{$EmailAddress|escape:'hex'}">{$EmailAddress|escape:'mail'}</a>
参见
Smarty编译转换,
{mailto}
和
混淆电邮地址。