PHP 在查询参数名称中使用 []
以确保多次出现的参数都出现在 $_GET
超全局变量中。 (否则只有最后一次出现。)(任何其他软件都这样做吗?)
但来自RFC 3986 (以及其他人)似乎 [
和 ]
都不允许出现在查询字符串中。
然而,我对各种浏览器的实验表明,没有浏览器对这些字符进行编码,它们就像那样存在于 URI 中......
这是现实生活中的做法吗?还是我测试不正确?我在 IIS 7 上使用 PHP 5.3.17 进行了测试。使用 Internet Explorer、Firefox 和 Chrome。然后我比较了 $_SERVER['QUERY_STRING']
和 $_GET
中的内容。
最佳答案
这是常见的做法。这是一种将数组传递到后端脚本的方法,并且可以与 ASP 和 PHP 一起使用(从未使用 ASP.net 进行过测试,但是当我在 ~2004 年使用 ASP 时这是常见的做法)。据我所知,除非您使用 javascript 和 .join
或类似的东西,否则没有其他方法可以将数组传递给您的脚本。
可以查看http://www.thefutureoftheweb.com/blog/use-arrays-with-html-form-inputs作为如何在要传递到后端的 HTML 表单中使用数组的引用资料之一。不过,公平地说,大多数时候它们与“POST”而不是“GET”一起使用。
关于php - HTTP 查询字符串和 [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12928173/