2012-10-11 85 views
1

我将一个php变量的值设置为某个html。即设置一个php变量为html

$_img = '<a href="some url">hehehehehe</a>'; 

该变量然后在br标签后的html中显示。但它不会执行它的HTML。而是它显示它像<a href="some url">hehehehehe</a>。那么,我的代码中是否有任何问题!我该如何做这件事?

这里是显示在HTML中,

<?php if ($_item->getComment()): ?> <br/><?php echo $this->escapeHtml($_item->getComment(), array('b','br','strong','i','u')) ?> <?php endif; ?> 
+5

哪里是呈现了变量的代码?听起来像是被编码的HTML。 – roryf

+1

你如何输出变量? –

+1

问题在于如何输出变量,并且您没有向我们显示该代码。 – Quentin

回答

1

从您的评论....

这里是显示代码<?php if ($_item->getComment()): ?> <br/><?php echo $this->escapeHtml($_item->getComment(), array('b','br','strong','i','u')) ?> <?php endif; ?>

正如预测的那样受到很多人的,它看起来像你的编码值,当您显示它。

我不知道$this->escapeHtml函数正在做什么,但它似乎是在对字符串进行HTML编码。

结果使得任何标记,例如<a>将被发送到浏览器作为&lt;a&gt;该浏览器将显示作为<a>。浏览器将而不是看作标记,因此不会将其视为一个。

所以,简单的答案是:不编码的HTML ...

<?php echo $_item->getComment(); ?> 
+0

是的,已经做到了。谢谢! – MJQ

3
<?php 
    $string = '<a href="http://stackoverflow.com">Hehehe</a>'; 
    echo $string; 
?> 

也能正常工作的代码! html被“执行”并显示链接。

1

我怀疑你只是回应变量。

您需要使用'htmlspecialchars'方法,如下所示。

<?php 
    $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES); 
    echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt; 
    ?>