php - 有两个同名 HTTP GET 参数时的行为

标签 php http

假设您的 HTTP 请求的格式如下:

GET /path/to/file.php?var[]=1&var[]=2

PHP 会将其填充到名为 $_GET 的数组中:array('var' => array(1, 2))

我的问题是...这是 PHP 的事情还是这种行为受 RFC 管辖? Web 可访问的 Node.js 或 Python 脚本将如何处理这个问题?

最佳答案

默认情况下,PHP 将覆盖以前的值,并且最终会得到查询字符串中找到的最后一个键:值对。但在 PHP 中,您可以使用 [] 数组作为字段名 hack:

  1. example.com?foo=bar&foo=baz&foo=qux
  2. example.com?foo[]=bar&foo[]=baz&foo[]=qux

第 1 行生成 $_GET,如下所示:

$_GET = array(
    'foo' => 'qux'
);

第 2 行生产

$_GET['array'] = array
   'foo' => array('bar', 'baz', 'qux');
}

请注意,此行为是 PHP 特有的。其他语言做自己的事情。据我记得,Perl 默认情况下会将所有值保留为数组。

关于php - 有两个同名 HTTP GET 参数时的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24613296/

相关文章:

php - 获取在 jquery 中预览的图像的 SRC

php - 为会计系统设计MySQL表

php - 将数据添加到数据库的最佳方式是什么?

java - ruby 中是否有一些像 java httpclient 这样的库

ruby - 如何通过 ruby​​ 脚本从 Web 服务器请求 gzip 压缩页面?

php - Vagrant ,找不到 Apache 文件

php - Laravel 粗鲁显示为空

oracle - 如何修复在oracle过程中调用API时出现 "HTTP request failed"错误?

python - 当没有文件重定向 url django 时,我的本地端口位于 127.0.0.1 :8000 always redirects to 127. 0.0.1:8000/myapp/lists

http - 阅读 http 帖子标题