我在php变量中有HTML标签。我想按原样打印值。这是我试过的。
$str = "A 'quote' is <b>bold</b>";
echo htmlentities($str);
// Outputs: A 'quote' is <b>bold</b>
echo $str; //out puts as follows
'quote'是粗体
但我想将其打印为
A 'quote' is <b>bold</b>
此外,有没有任何设置可以在PHP页面的顶部完成,所以我不需要在每个PHP变量中使用它?
答案 0 :(得分:7)
只需使用
$str = "A 'quote' is <b>bold</b> ";
echo htmlspecialchars($str);
因为htmlentities
会将某些字符转换为HTML实体。
您应该使用htmlspecialchars
它替换如下字符:
'&' (ampersand) becomes &
'"' (double quote) becomes " when ENT_NOQUOTES is not set.
"'" (single quote) becomes ' only when ENT_QUOTES is set.
'<' (less than) becomes <
'>' (greater than) becomes >
您可以查看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>
,则htmlspecialchars
或htmlentities
是正确的功能,因为它们会转义HTML代码,浏览器会将标记显示为你想要的。
答案 3 :(得分:-1)
将其设为..
<?php
function my_custom_echo($str)
{
echo htmlspecialchars($str);
}
my_custom_echo("<p>what ever I want </P>")
?>