PHP string - '<' 有什么问题?

PHP string - what's wrong with '<'?

我正在处理字符串,不知何故 php 只是决定忽略下面的字符串(如果里面有“<”)。我找不到任何相关信息。看这个例子:

$str = 'foo<bar'
// echoes foo, foo<bar expected

有没有我不知道的字符串运算符?包裹在 ' ' 内的字符串不应由 php 求值,对吗?

您的浏览器可能将其解释为 HTML,并将 <bar 视为部分 HTML 标记。由于它不知道如何呈现 bar 标记,因此它什么也没有显示,只呈现文本 foo

如果您转到 view-source 或将文件作为 text/plain 发送,所有文本都会显示。

如果您想在 HTML 文档中呈现字符串 foo<bar,您可以执行 echo htmlspecialchars($str),这会将字符串打印为 foo&lt;bar。此 转义 < 字符,因此它不会被解释为 HTML。

可能是您的浏览器正在删除它,因为它看起来像一个错误的 html 标签。

按Ctrl+U(查看源码)查看..

检查结果页面的源代码视图,输出无效html,因此不可见。

正确的字符串是'foo&lt;bar'

使用这个

htmlspecialchars ("foo<bar");