PHP 字符串被剪短
Why does this code
$string = "!@#$%^&*(<[email protected]";
echo $string;
only output:
!@#$%^&*(
Is this is a PHP bug?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
Why does this code
$string = "!@#$%^&*(<[email protected]";
echo $string;
only output:
!@#$%^&*(
Is this is a PHP bug?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
因为<是 HTML 中的保留字符 :)
使用
<
和>
阅读此内容以获取更多信息
http://www.w3schools.com/HTML/html_entities.asp
您可以使用函数 htmlspecialchars 来转换此类特殊字符
http://php.net/manual/en/function.htmlspecialchars.php
Because < is a reserved character in in HTML :)
Use
<
and>
Read this for more information
http://www.w3schools.com/HTML/html_entities.asp
You can use the function htmlspecialchars to convert such special chars
http://php.net/manual/en/function.htmlspecialchars.php
我没有看到:
http://ideone.com/zhycx
也许你有一些奇怪的字符你的文件?确保您也在源代码上使用“正常”编码。
I'm not seeing that:
http://ideone.com/zhycx
Perhaps you've got some weird characters in your file? Make sure you're using a "normal" encoding on your source code, as well.
您需要执行以下操作:
在浏览器上显示字符串。这是因为浏览器将字符串中的
<
解释为 HTML 标记的开头。因此,造成这种行为的不是 PHP,而是浏览器。如果您在命令行上执行完全相同的显示,您将看到所有字符。
You need to do:
to display the string as it is on a browser. This is because the
<
in the string is interpreted by the browser as start of a HTML tag.So it's not PHP but the browser that is causing this behavior. If you do the exact same display on a command line, you'll see all the characters.
如果您在 Web 浏览器中查看输出,则
<
会开始一个标记,并且通常不会显示,而是在 HTML 文档结构解析器中进行解释。此外,双引号字符串内的$
会被插入作为其后面的变量名称;尝试使用单引号,这样就不会发生这种情况。试试这个:
If you are viewing the output in a web browser, then the
<
begins a tag and is usually not displayed but interpreted in the HTML document structure parser. Also, a$
inside of a double-quoted string is interpolated as the variable name that follows it; try using single quotes where this won't happen.Try this: