我有一个带有html内容的smarty变量,如:
$html="<strong>Content</strong><br/>etc etc"
。
我试着把它显示为html格式。当显示它时
{$html}
只显示纯文本而不进行格式化。我尝试:
{$html|unescape}
但随后标签显示但未应用。你有什么建议吗?
答案 0 :(得分:16)
有趣的是,这里的答案都不适用于CS-Cart 4.3.4上的Smarty 3.1.21。所以,只是为了在这种情况下添加另一个想法,请使用nofilter
字符串上的$html
,如下所示:
{$html nofilter}
答案 1 :(得分:6)
你应该试试这个:
{$html|unescape:'html'}
另请查看手册:
http://www.smarty.net/docs/en/language.modifier.unescape.tpl
答案 2 :(得分:5)
你可以试试这个:
{$html|unescape: "html" nofilter}
答案 3 :(得分:0)
对于使用Smarty 2.x的人来说,unescape
方法不可用,可以试试这个;
{$html|html_entity_decode}
答案 4 :(得分:-1)
你可以尝试:
php函数符号:
function html($str) {
$arr = array(
"<" => "<",
">" => ">",
""" => '"',
"&" => "&",
"\" => chr(92),
"'" => chr(39),
"'" => chr(39)
);
return nl2br(strtr($str,$arr));
}
在smarty模板中调用:
{html({$html})}
或者没有php功能只有聪明:
{$html|unescape:'allhtml'}
注意:如果在tpl中使用reset css
,您可以尝试将其删除并重试。
答案 5 :(得分:-1)
某些版本的smarty unescape
不可用。如果是这种情况,请尝试使用escape:'htmlentitydecode'
。
{$html|escape:'htmlentitydecode'}