1

我正在打印一个字符串,如下所示

代码:

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

输出:

&words=帮助|好

请注意,最后一个&没有打印。

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

代码:

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

输出:

&words=帮助|好&

现在&打印出来了。

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

4

3 回答 3

4

如果您将其输出到网络浏览器,您应该通过&amp;在 HTML 中使用“&”来转义 & 转义字符串,在 URL 中也是一个特殊的字符,如 <> 等。

于 2009-12-07T08:50:46.403 回答
1

这段代码对我有用

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

输出

&words=帮助|好&

这引出了一个问题:上下文是什么?此代码输出在哪里,您是在网络服务器上运行它并在浏览器中查看吗?是否没有其他可能导致此问题的代码?

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

于 2009-12-07T08:37:49.823 回答
1

如果您在网页中输出它,那么浏览器将解释为&特殊。在浏览器中选择“查看源代码”,您将看到原始输出。htmlspecialchars如果您需要它出现在 html 上下文中,则必须在打印之前传递字符串。所以:

$rs['pw'] = "Help|Good";
echo htmlspecialchars("&words=".$rs['pw']."&");
于 2009-12-07T08:48:39.557 回答