【问题标题】:PHP string cut shortPHP字符串缩短
【发布时间】:2011-04-28 09:50:26
【问题描述】:

为什么会有这段代码

$string = "!@#$%^&*(<a@g.com"; 
echo $string; 

仅输出:

!@#$%^&*(

这是一个 PHP 错误吗?

【问题讨论】:

  • 是动态生成的字符串吗?

标签: php string special-characters echo html-entities


【解决方案1】:

我没看到:

http://ideone.com/zhycx

也许您的文件中有一些奇怪的字符?确保您也在源代码上使用“正常”编码。

【讨论】:

    【解决方案2】:

    因为

    使用&amp;lt;&amp;gt;

    阅读本文了解更多信息

    http://www.w3schools.com/HTML/html_entities.asp

    您可以使用函数 htmlspecialchars 来转换这些特殊字符

    http://php.net/manual/en/function.htmlspecialchars.php

    【讨论】:

      【解决方案3】:

      你需要做的:

      echo htmlentities($string);
      

      在浏览器上显示字符串。这是因为字符串中的&lt; 被浏览器解释为 HTML 标记的开始。

      所以不是 PHP 而是浏览器导致了这种行为。如果您在命令行上进行完全相同的显示,您将看到所有字符。

      【讨论】:

        【解决方案4】:

        如果您在 Web 浏览器中查看输出,则 &lt; 开始一个标记,通常不会显示,而是在 HTML 文档结构解析器中进行解释。此外,双引号字符串内的$ 被插入为它后面的变量名;尝试在不会发生这种情况的情况下使用单引号。

        试试这个:

        $string = '!@#$%^&*(<a@g.com';
        echo htmlentities($string);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-11-11
          • 2013-04-23
          • 1970-01-01
          • 2019-10-04
          • 1970-01-01
          • 1970-01-01
          • 2011-08-11
          相关资源
          最近更新 更多