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