【发布时间】:2012-10-07 08:21:30
【问题描述】:
PHP 在查询参数名称中使用[] 以确保参数的多次出现都出现在$_GET 超全局变量中。 (否则只有最后一次出现。)(还有其他软件可以做到吗?)
但从RFC 3986(以及其他人)看来,查询字符串中既不允许[ 也不允许]。
然而,我对各种浏览器的实验表明,没有浏览器对这些字符进行编码,它们就在 URI 中...
这是现实生活中的实践吗?还是我测试不正确?我在 IIS 7 上使用 PHP 5.3.17 进行了测试。使用 Internet Explorer、Firefox 和 Chrome。然后我比较了$_SERVER['QUERY_STRING']和$_GET中的内容。
【问题讨论】:
-
这个问题来自stackoverflow.com/questions/12920242/…,是在建议将其拆分成更小的问题后提出的。
-
如果页面具有 .html 扩展名并且仅包含静态 html,会发生什么情况。当您使用 GET 方法提交它时会发生什么?我不认为 PHP 是这里的罪魁祸首。
-
@SabeenMalik 绝对不是 PHP。它的浏览器(似乎)在没有正确编码的情况下发送
[]。为什么?它是事实上的标准吗?
标签: php http uri query-string urlencode