具有相同标识符的多个HTTP GET参数

Mat*_*tsT 12 php parameters http-get

假设我收到的请求如下:

http://www.example.com/index.php?id=123&version=3&id=234&version=4

是否有可能在我的PHP代码中以简单的方式提取这些?我意识到我可以使用window.location.href使用javascript获取整个查询字符串并手动处理它但我正在寻找更优雅的东西.请求可以包含任意数量的版本/ ID对,但我可以假设查询格式正确,并且没有义务处理无效字符串.

Jac*_*son 25

如果您可以将字段名称更改为include [],那么PHP将创建一个包含所有匹配值的数组:

http://www.example.com/index.php?id[]=123&version[]=3&id[]=234&version[]=4
Run Code Online (Sandbox Code Playgroud)

如果您无法更改字段名称,那么正如您所说,您必须自己解析查询字符串.


Bri*_*oll 7

根据PHP手册中的这个评论,PHP的查询字符串解析器将删除重复的参数...所以我不认为PHP非常适合你想要做的事情(除了它具有与javascript相同的容量)获取原始查询字符串,您可以使用它来执行任何操作

  • +1这在PHP方面看起来非常愚蠢,我认为任何其他平台都支持多值http参数而没有问题. (11认同)
  • PHP 确实支持这一点。多值查询字符串变量进入数组并可以从那里访问。无需解决方法。不是 PHP 问题。 (2认同)
  • @mmundiff你现在可能是...我原来的答案差不多是五年了. (2认同)