5

我想用 smarty 编码一个 url。

 <a href="https://www.facebook.com/sharer/sharer.php?u={$var} " target="_blank"></a>

$var 包含我的数据 url

4

3 回答 3

14

使用转义修饰符,您可以设置可选的 escape_type 'url' 以返回 rawurlencode()。

{$var|escape:'url'}

默认情况下 {$var|escape} 使用 escape_type 'html' 并返回 htmlspecialchars() 其中 '&' (与号)变为&amp;。所以'url'可能有用。rawurlencode() 保护文字字符不被解释为特殊的 URL 分隔符:

<a href="https://www.facebook.com/sharer/sharer.php?u={$var|escape:'url'} " target="_blank"></a>
于 2013-04-16T14:18:11.577 回答
0

您还可以使用 PHP 函数 urlencode 作为修饰符。

PHP 函数可以用作修饰符,如果$security允许的话。

//the "rewind" paramater registers the current location
<a href="{$SCRIPT_NAME}?page=foo&rewind={$smarty.server.REQUEST_URI|urlencode}">click here</a>
于 2013-10-22T07:35:26.087 回答
0

您可以使用转义修饰符

{$var|escape}

更多信息请访问: http ://www.smarty.net/docsv2/en/language.modifier.escape.tpl

于 2013-04-16T14:12:02.140 回答