我将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; ?>
答案 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; // <a href='test'>Test</a>
?>
答案 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>
)都将<a>
作为<a>
发送到浏览器,浏览器显示为<?php echo $_item->getComment(); ?>
。浏览器不将其视为标记,因此不会将其视为标记。
所以简单的答案是:不要编码HTML ...
{{1}}