我打印一个字符串,如下所示
代码:
echo "&words=".$rs['pw']."&";
输出:
&安培;词语=帮助|良好
请注意,最后&
未打印。
但是当我在&
之后添加空格字符时,它会打印如下
代码:
echo "&words=".$rs['pw']."& ";
输出:
&安培;词语=帮助|良好&安培;
现在打印&
。
为什么会发生这种情况并说明这种行为的原因?
答案 0 :(得分:4)
如果您要将其输出到网络浏览器,那么您应该将其输出到&使用&
“&”在HTML中使用很多来转义字符串,而在URL中则是一个特殊的字符串,例如<>等
答案 1 :(得分:1)
此代码适用于我
$rs['pw'] = "Help|Good";
echo "&words=".$rs['pw']."&";
输出
&安培;词语=帮助|良好&安培;
这引出了一个问题:背景是什么?这段代码输出在哪里,您是在网络服务器上运行它还是在浏览器中查看?是否没有其他代码可以导致这种情况?
如果上下文类似于在HTML中输出,那么您需要确保它在正确的位置。在HTML&符号是特殊的,你应该逃避它。通常这意味着转换为&
答案 2 :(得分:1)
如果您在网页中输出,则浏览器会将&
解释为特殊。在浏览器中选择“查看源代码”,您将看到原始输出。如果您需要它出现在html上下文中,则必须在打印之前将字符串传递给htmlspecialchars
。所以:
$rs['pw'] = "Help|Good";
echo htmlspecialchars("&words=".$rs['pw']."&");