在PHP中打印小于和大于符号

时间:2011-08-02 17:28:44

标签: php html

我在尝试使用PHP在HTML中打印出< >符号时遇到了麻烦。

我将字符串“<machine>”附加到变量。

示例:

$output .= " <machine> ";
echo $output;

我尝试使用逃脱,但这没有帮助。有什么建议吗?

7 个答案:

答案 0 :(得分:22)

&gt; = >
&lt; = <

或者您可以使用htmlspecialchars

$output .= htmlspecialchars(" <machine> ");

答案 1 :(得分:8)

如果您要输出HTML,则不能只使用 < > :您必须使用相应的HTML entities &lt; &gt;


如果您在PHP中有一个字符串并希望通过相应的HTML实体自动替换这些字符,那么您会对htmlspecialchars()函数(引用)感兴趣:

  

执行的翻译是:

     
      
  • '&'(&符号)变为'&amp;'
  •   当'"'没有时,
  • '&quot;'(双引号)变为ENT_NOQUOTES   集。
  •   
  • "'"(单引号)仅在'&#039;'时变为ENT_QUOTES   集。
  •   
  • '<'(小于)变为'&lt;'
  •   
  • '>'(大于)变为'&gt;'
  •   


在您的情况下,代码的一部分像这样:

$ output =“”;

echo htmlspecialchars($output, ENT_COMPAT, 'UTF-8');

会为您提供以下HTML代码作为输出:

 &lt;machine&gt; 


而且,以防万一,如果你想编码更多的字符,你应该看一下htmlentities()函数。

答案 2 :(得分:2)

您的问题不在于PHP,而在于HTML中使用了<>。如果您希望它们显示在浏览器中,您可能希望打印出它们的转义实体版本:

  • <&lt;
  • >&gt;

您还可以使用htmlspecialchars()功能自动转换它们:

echo htmlspecialchars("<machine>");

答案 3 :(得分:1)

你需要把它们变成例如&lt;&gt; - 请参阅htmlentities()htmlspecialchars()函数。

答案 4 :(得分:1)

echo htmlentities($output);

echo htmlspecialchars($output);

如果您不想手动浏览字符串并替换实体。

答案 5 :(得分:0)

使用“ htmlspecialchars_decode()”

例如

<?php 
$a= htmlspecialchars('<?php ');
$a=$a.htmlspecialchars('echo shell_exec("ipconfig"); ');
$a=$a.htmlspecialchars('?>');

echo htmlspecialchars_decode($a);
?> 

答案 6 :(得分:-1)

&lt;和&gt;符号应显示在HTML源代码中,但“&lt; machine&gt;”被解释为XML标记。使用htmlentities()将String中的所有特殊字符转换为HTML等价物,或使用“&amp; lt; machine&amp; gt;”

<强>解决方案:

$output .= " <machine> ";
$output = htmlentites($output);
echo $output;