我打印一个字符串如下

代码:

echo "&words=".$rs['pw']."&"; 

输出:

&words=帮助|好

请注意最后一个 & 未打印。

但是当我在之后添加一个空格字符时 & 然后打印如下

代码:

echo "&words=".$rs['pw']."& "; 

输出:

&words=帮助|好&

现在 & 被打印。

为什么会发生这种情况以及这种行为的原因是什么?

有帮助吗?

解决方案

如果你将其输出到你应该逃避网络浏览器和使用&amp;的“&”在HTML中使用了很多逃避串,并在网址的所以是一个特殊字符,如<>等

其他提示

如果你在一个网页输出,然后浏览器会解释&特殊。选择在浏览器中的“查看源文件”,你会看到的原始输出。如果你需要它出现在HTML的情况下,你将不得不通过htmlspecialchars打印之前传递的字符串。所以:

$rs['pw'] = "Help|Good";
echo htmlspecialchars("&words=".$rs['pw']."&");

这段代码对我有用

$rs['pw'] = "Help|Good";
echo "&words=".$rs['pw']."&";

输出

&words=帮助|好&

这让我想到一个问题:背景是什么?此代码输出在哪里,您是否在网络服务器上运行它并在浏览器中查看?是否没有其他涉及的代码可能导致此问题?

如果上下文类似于以 HTML 形式输出,那么您需要确保它位于正确的位置。在 HTML 中 & 符号是特殊的,你应该转义它。通常这意味着翻译成 &amp;

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top