当我有这样的网址时
site.com/index.php?name=JON%20%20%20%20%20%20%20SMIT
我在 index.php 文件中打印$_GET['name']
变量,结果是Jon Smit
.
也就是说,JON 和 SMIT 之间的队列空间被替换为一个空间。为什么会这样?
HTML 忽略了多余的空格,所以无论你在名称中输入多少空格,当它在浏览器中输出时,浏览器只会显示一个空格。您需要用
(不间断空格)替换您的空格,以确保浏览器显示所有空格。
特殊字符(如空格)在 URL 中的编码方式是如何定义的,另请参阅Wiki。您可以通过urlencode进行 URL 编码,反之则为urldecode
仅关于 ONE Space:查看页面的来源(即 HTML 代码),在 Firefox 中,例如通过 Ctrl+U,会有更多的空格。但是:浏览器只显示其中之一。如果你想将它们保留在输出中,你可以使用类似的东西
echo '<pre>' . $_GET['name'] . '</pre>';
或者
echo str_replace(' ', ' ', $_GET['name']);