我有一个 smarty 变量,其中包含 html 内容,例如:
$html="<strong>Content</strong><br/>etc etc"
。我尝试以 html 格式显示它。当显示它时,
{$html}
只显示纯文本而没有格式化。我尝试喜欢:
{$html|unescape}
但随后显示标签但未应用。你有什么建议吗?
问问题
35701 次
7 回答
42
有趣的是,这里的答案都不适用于 CS-Cart 4.3.4 上的 Smarty 3.1.21。因此,只是为了在这种情况下添加另一个想法,请像这样nofilter
在$html
字符串上使用:
{$html nofilter}
于 2015-11-24T18:12:23.473 回答
11
你应该试试这个:
{$html|unescape:'html'}
另请查看手册:
http://www.smarty.net/docs/en/language.modifier.unescape.tpl
于 2013-05-08T20:31:38.073 回答
8
你可以试试这个:
{$html|unescape: "html" nofilter}
于 2017-07-28T10:45:04.393 回答
0
某些版本的 smartyunescape
不可用。如果是这种情况,请尝试使用escape:'htmlentitydecode'
.
{$html|escape:'htmlentitydecode'}
于 2015-11-19T23:02:22.790 回答
0
使用Smarty 2.x的用户,unescape
没有该方法,可以试试这个;
{$html|html_entity_decode}
于 2021-01-15T05:40:36.873 回答
-3
你可以试试 :
php函数符号:
function html($str) {
$arr = array(
"<" => "<",
">" => ">",
""" => '"',
"&" => "&",
"\" => chr(92),
"'" => chr(39),
"'" => chr(39)
);
return nl2br(strtr($str,$arr));
}
在 smarty 模板调用中:
{html({$html})}
或者没有 php 函数只有 smarty:
{$html|unescape:'allhtml'}
注意:如果在 tpl 中有使用reset css
,您可以尝试将其删除并重试。
于 2014-12-18T02:54:11.043 回答