0

当我有这样的网址时

site.com/index.php?name=JON%20%20%20%20%20%20%20SMIT

我在 index.php 文件中打印$_GET['name']变量,结果是Jon Smit.

也就是说,JON 和 SMIT 之间的队列空间被替换为一个空间。为什么会这样?

4

3 回答 3

2

HTML 忽略了多余的空格,所以无论你在名称中输入多少空格,当它在浏览器中输出时,浏览器只会显示一个空格。您需要用 (不间断空格)替换您的空格,以确保浏览器显示所有空格。

于 2013-01-26T08:12:43.677 回答
1

这应该保留空格:

print rawurldecode($_GET['name']);

这将打印多余的空格,但是您的浏览器可能会忽略多余的空格。 文档

于 2013-01-26T08:09:53.863 回答
1

特殊字符(如空格)在 URL 中的编码方式是如何定义的,另请参阅Wiki您可以通过urlencode进行 URL 编码,反之则为urldecode

仅关于 ONE Space:查看页面的来源(即 HTML 代码),在 Firefox 中,例如通过 Ctrl+U,会有更多的空格。但是:浏览器只显示其中之一。如果你想将它们保留在输出中,你可以使用类似的东西

echo '<pre>' . $_GET['name'] . '</pre>';

或者

echo str_replace(' ', '&nbsp;', $_GET['name']);
于 2013-01-26T08:11:08.210 回答