1

我正在将 php 变量的值设置为一些 html。IE

$_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; ?> 
4

3 回答 3

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

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

于 2012-10-11T12:46:44.207 回答
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(); ?>
于 2012-10-11T12:59:15.933 回答
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;
    ?>
于 2012-10-11T12:48:38.450 回答