PHP 的 `$_POST` 数组可以处理同名的多个表单字段吗?

Linda Hamilton
发布: 2024-11-24 19:48:12
原创
982 人浏览过

Can PHP's `$_POST` Array Handle Multiple Form Fields with the Same Name?

提交具有重复名称属性的表单字段

问题:

提交包含以下内容的表单时多个文本输入字段具有相同的名称属性,是否仍然可以从PHP 中的 $_POST 数组?

答案:

不会,只有最后一个同名输入元素的值才会存储在 $_POST 数组中。

原因:

PHP 填充$_POST 数组,将原始查询字符串分解为单独的名称-值对。当它遇到多个具有相同名称的名称-值对时,它会用新值覆盖以前的值。

替代方案:

用相同的值处理多个输入name:

  • 使用带有附加数组语法的名称属性(例如, name="foo[]")。
  • 使用 $rawQueryString = file_get_contents('php://input') 直接访问原始查询字符串。

解析原始查询字符串:

如果使用原始查询字符串,您可以使用类似的脚本手动解析它至:

$post = array();
foreach (explode('&', file_get_contents('php://input')) as $keyValuePair) {
    list($key, $value) = explode('=', $keyValuePair);
    $post[$key][] = $value;
}
登录后复制

以上是PHP 的 `$_POST` 数组可以处理同名的多个表单字段吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板