【问题标题】:Print less-than and greater-than symbols in PHP在 PHP 中打印小于和大于符号
【发布时间】:2011-10-18 11:08:45
【问题描述】:

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

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

例子:

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

我尝试使用转义符,但没有帮助。有什么建议吗?

【问题讨论】:

标签: php html


【解决方案1】:

&amp;gt; = &gt;
&amp;lt; = &lt;

或者你可以使用htmlspecialchars

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

【讨论】:

  • 感谢所有回复的人的帮助。
  • 或者只是htmlspecialchars() 用于echo 的输出,在此之前不需要运行它。
  • @Wesley:OP 的代码包含一个连接,所以我想强调它仍然可以像原来的意图一样使用(并且它返回一个值,而不仅仅是输出一个)。但是你是对的,只需要在最顶层调用它。
  • 只是想让你知道 4 年多以后,你帮助了另一个人:P
【解决方案2】:

如果要输出 HTML,不能只使用 &amp;lt;&amp;gt; :必须使用对应的 HTML entities&amp;lt; &amp;gt;


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

执行的翻译是:

  • '&amp;amp;'(和号)变为'&amp;amp;'
  • '"'(双引号)变为'&amp;quot;',而ENT_NOQUOTES 不是 设置。
  • "'"(单引号)只有在 ENT_QUOTES 是 设置。
  • '&amp;lt;'(小于)变为'&amp;lt;'
  • '&amp;gt;'(大于)变为'&amp;gt;'


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

$输出 = " ";

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

会得到以下 HTML 代码作为输出:

 &lt;machine&gt; 


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

【讨论】:

    【解决方案3】:

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

    • &amp;lt;&amp;lt;
    • &amp;gt;&amp;gt;

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

    echo htmlspecialchars("<machine>");
    

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:
        echo htmlentities($output);
        

        echo htmlspecialchars($output);
        

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

        【讨论】:

          【解决方案6】:

          使用“htmlspecialchars_decode()”

          例如

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

          【讨论】:

            【解决方案7】:

            符号应显示在 HTML 源代码中,但“”被解释为 XML 标记。使用 htmlentities() 将字符串中的所有特殊字符转换为其 HTML 等效字符,或使用 "<machine>"

            解决方案:

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

            【讨论】:

              猜你喜欢
              • 2022-11-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-12-22
              • 1970-01-01
              相关资源
              最近更新 更多