用html内容显示一个聪明的变量

时间:2013-05-08 20:26:52

标签: html smarty

我有一个带有html内容的smarty变量,如: $html="<strong>Content</strong><br/>etc etc" 。 我试着把它显示为html格式。当显示它时 {$html} 只显示纯文本而不进行格式化。我尝试: {$html|unescape} 但随后标签显示但未应用。你有什么建议吗?

6 个答案:

答案 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(
        "&lt;"      => "<",
        "&gt;"      => ">",
        "&quot;"    => '"',
        "&amp;"     => "&",
        "&#92;"     => chr(92),
        "&#39"      => chr(39),
        "&#039;"    => 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'}