我正在打印一个字符串,如下所示
代码:
echo "&words=".$rs['pw']."&";
输出:
&words=帮助|好
请注意,最后一个&
没有打印。
但是当我之后添加一个空格字符时,&
它会打印如下
代码:
echo "&words=".$rs['pw']."& ";
输出:
&words=帮助|好&
现在&
打印出来了。
为什么会发生这种行为以及这种行为的原因是什么?
如果您将其输出到网络浏览器,您应该通过&
在 HTML 中使用“&”来转义 & 转义字符串,在 URL 中也是一个特殊的字符,如 <> 等。
这段代码对我有用
$rs['pw'] = "Help|Good";
echo "&words=".$rs['pw']."&";
输出
&words=帮助|好&
这引出了一个问题:上下文是什么?此代码输出在哪里,您是在网络服务器上运行它并在浏览器中查看吗?是否没有其他可能导致此问题的代码?
如果上下文类似于以 HTML 格式输出,那么您需要确保它位于正确的位置。在 HTML 中,& 符号很特殊,您应该转义它。通常这意味着翻译成&
如果您在网页中输出它,那么浏览器将解释为&
特殊。在浏览器中选择“查看源代码”,您将看到原始输出。htmlspecialchars
如果您需要它出现在 html 上下文中,则必须在打印之前传递字符串。所以:
$rs['pw'] = "Help|Good";
echo htmlspecialchars("&words=".$rs['pw']."&");