2013-05-08 63 views
0

我有一个聪明的变量,其中的html内容像︰ $html="<strong>Content</strong><br/>etc etc" 。 我尝试将其显示为html格式。当显示它像 {$html} 只显示纯文本没有格式。我尝试像: {$html|unescape} 但后来标签显示,但没有应用。你有什么建议吗?显示一个具有html内容的聪明变量

回答

-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你可以尝试删除它,然后再试一次。

0

在较新版本的smarty中,似乎unescape不可用。相反,请使用escape:'htmlentitydecode'

{$html|escape:'htmlentitydecode'} 
7

有趣的是,这里的答案都没有在CS-Cart 4.3.4上使用Smarty 3.1.21。所以,仅仅对$html字符串添加又一想在那种情况下,使用nofilter像这样:

{$html nofilter}

+1

我爱你,在获取RSS提要和显示发布说明期间,我正在为cs-cart 4.4.3中的同一问题寻找同样的解决方案。 – 2017-04-12 20:19:48

+1

谢谢你的家伙,事实证明这是Prestashop 1.7中推荐使用的过滤器! – Zyfraglover 2017-10-04 15:27:01

1

你可以试试这个:

{$html|unescape: "html" nofilter} 
+0

添加一些解释与答案如何帮助解决当前问题 – 2017-07-28 10:59:38