将php变量设置为html

时间:2012-10-11 12:31:27

标签: php html

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

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

然后在br标签后面的html中显示变量。但它不会在其中执行html。相反,它显示为<a href="some url">hehehehehe</a>。那么,我的代码有什么问题!我该怎么做呢?

以下是显示IN HTML的代码,

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

3 个答案:

答案 0 :(得分:3)

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

这很好用! html被“执行”并显示链接。

答案 1 :(得分: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;
    ?>

答案 2 :(得分: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>发送到浏览器,浏览器显示<?php echo $_item->getComment(); ?> 。浏览器将其视为标记,因此不会将其视为标记。

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

{{1}}