当前位置: 首页 > 面试题库 >

表单输入字段名称包含方括号,例如field [index]

甄志
2023-03-14
问题内容

我看过很多处理表单输入的PHP代码,其中输入字段名称包含方括号。我知道当PHP脚本检查$ _POST变量时,这会以某种方式导致PHP数组。

HTML示例:

<form action='http://zzz.com' method='post'>
    <input name='fruit[1]' value='apple' />
    <input name='fruit[2]' value='banana' />
</form>

范例网址:

http://zzz.com?fruit[1]=apple&fruit[2]=banana

示例PHP:

assert($_POST['fruit'] === array(1=>'apple', 2=>'banana'));

我对此的疑问:

  • 其背后的机制是什么?这些包含方括号的名称在什么时候转换为数组?这是HTTP协议的功能吗?Web服务器?PHP语言的?

  • 继续前面的问题,这是常用的黑客工具还是普通的编程工具?

  • 在输入字段名称中使用括号的规则(全部)是什么?

  • 可以通过这种方式创建多维数组吗?


问题答案:

背后的机制是什么?在什么时候这个仅包含方括号的名称将转换为数组?这是HTPP协议的功能吗?Web服务器?是PHP语言吗?

这是PHP语言的功能。实际上,HTTP协议并不禁止使用多个相同的GET / POST参数。根据HTTP规范,以下内容:

foo=bar&foo=baz

不应导致foo == baz。这是两个具有两个不同值的参数。但是,PHP会foo用最新的结果()覆盖前者$_POST['foo'] == 'baz',即使它们可以单独解析也是如此。

继续前面的问题,这是常用的黑客工具还是普通的编程工具?

这取决于观点。在PHP世界中,这是完全正常的,因为该语言不使用括号不支持指定相同名称的多个参数[]。在HTTP世界中,foo != foo[]

在输入字段名称中使用方括号的(全部)规则是什么?

与PHP数组相同,除了不必引用字符串键。

可以通过这种方式创建多维数组吗?

是的你可以。



 类似资料:
  • 问题内容: 有人可以帮我弄这个吗。 我有我的选择查询 我想要选择查询的内容,并在下载csv文件时包含标题,因此我执行了以下查询: 但这给了我这个错误 我想在我下载的csv文件中有这样的输出: 先感谢您。 问题答案: 如错误所示:来自查询的词典包含的键多于您在DictWriter构造函数中指定的字段名称。 一种解决方案是提前对其进行过滤,如下所示: 另一种解决方案是仅使用那些字段来构造查询: 但是,

  • 问题内容: 我正在使用ADO从Excel工作簿导入数据。我在一个工作表上遇到麻烦,其中一个列名包含一个点:“ Col.1”。 我尝试了所有发现的东西:双引号,方括号,后卫。什么都行不通。会引发错误,或者在每行上查询输出“ Col.1”。 鉴于我无法重命名源文件中的列, 如何使用其名称而不是其编号([F1])手动选择此列? 问题答案: 我终于找到了如何从此列中检索数据。 您需要 替换“。” 按“#”

  • 问题内容: 我正在分析其他人的PHP代码,并且注意到输入HTML包含许多隐藏的输入字段,其名称以’[]’结尾,例如: 处理此输入的PHP页面将获取每个值,如下所示: “ []”的作用是什么?指定会有多个具有相同名称的输入字段? 问题答案: 是。基本上,PHP会知道将所有具有相同名称的值粘贴到数组中。 顺便说一下,这适用于所有输入字段,而不仅仅是隐藏的字段。

  • 问题内容: 我有一个user_batch集合。它包含以下文档: 在查找查询中,我只想投影 name 和 batchSize 。但是,当我从nodejs执行find查询时,我会在查询结果中获取整个文档。查询: 如果我只是通过 {name:1}, 那么它将投影_id和名称。但是,如果我通过 batchSize ,它将返回整个文档。 注意:在Mongo Shell中执行此查询时,我没有遇到此问题 问题答

  • 我有一列,其中每个单元格都有一串数字,,-,括号/方括号/花括号中的数字。下面是一个很好的例子: 如何将字符串按字符分成不同的单元格,在这种情况下,字符是指括号/括号/大括号(包括所述括号/括号/大括号)中的任何数字, ?, -, 和值? 本质上,上面的字符串将变成以下内容(间隔开来表示一个单独的单元格): 括号/方括号/花括号内的数字数量各不相同。任何字符串中都没有字母。

  • 我有一个简单的类,如下所示: 我创建一个,并将其作为属性传递给ThymeLeaf模板,以便将数据输入到高图地图图表中: 最后,问题来了! 不幸的是,Highchoors希望第一个字段的名称为,但是破折号不是Java中字段名称的有效字符。我可以做什么来自动获得以下内容?