在PHP输出中打印HTML标记

时间:2014-02-23 12:38:32

标签: php html

我在php变量中有HTML标签。我想按原样打印值。这是我试过的。

$str = "A 'quote' is <b>bold</b>";

echo htmlentities($str);
// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;

echo $str; //out puts as follows

'quote'是粗体

但我想将其打印为

 A 'quote' is <b>bold</b>

此外,有没有任何设置可以在PHP页面的顶部完成,所以我不需要在每个PHP变量中使用它?

4 个答案:

答案 0 :(得分:7)

只需使用

 $str = "A 'quote' is <b>bold</b> ";

echo htmlspecialchars($str);

因为htmlentities会将某些字符转换为HTML实体。

您应该使用htmlspecialchars

它替换如下字符:

'&' (ampersand) becomes &amp;
'"' (double quote) becomes &quot; when ENT_NOQUOTES is not set.
"'" (single quote) becomes &#039; only when ENT_QUOTES is set.
'<' (less than) becomes &lt;
'>' (greater than) becomes &gt;

您可以查看php fiddle here

答案 1 :(得分:2)

这应该有效 -

$str = "A 'quote' is <b>bold</b>";
echo "<xmp>".$str."</xmp>";
//Outputs - A 'quote' is <b>bold</b>

编辑:

<XMP>已弃用,正如评论中指出的那样,这似乎是它的解决方法(使用<PRE>标记和htmlentities) -

$str = "A 'quote' is <b>bold</b>";
echo "<pre>".htmlentities($str)."</pre>";
//Outputs - A 'quote' is <b>bold</b>

答案 2 :(得分:0)

如果要打印HTML,请不要使用htmlentities

如果这是用户输入,您仍应过滤它。

编辑:

如果您希望浏览器将文本显示为A 'quote' is <b>bold</b>,则htmlspecialcharshtmlentities是正确的功能,因为它们会转义HTML代码,浏览器会将标记显示为你想要的。

答案 3 :(得分:-1)

将其设为..

<?php

function my_custom_echo($str)
{
echo htmlspecialchars($str);
}

my_custom_echo("<p>what ever I want </P>")


?>