我正在序列化表单数据,输入名称中带有方括号,即 当我使用jquery序列化它以将其发布到我的php文件进行处理时,它看起来像这样-test%5Btesting%5D = some输入。当我尝试使用以下文件时,后端上的我的php文件没有看到这些名称: echo $ _POST ['test [testing]'];
如果我尝试仅使用名称测试获取信息,它将显示为数组。如何告诉php括号是字段名称的一部分?
<input name="test[testing]">
echo $_POST['test[testing]'];
当我尝试抓住它时,后端的php文件没有看到这些名称
答案 0 :(得分:1)
POST和GET数据中的PHP特例方括号。
通过以下方式访问它:
$_POST['test']['testing']
这允许您使用PHP将其反序列化为嵌套数组/关联数组结构的数据构造表单,以便服务器端代码可以对其进行迭代。
其他一些表单处理库也采用了这种格式,例如Express.js's body-parser库具有支持此功能的可选 extended 模式。
PHP不支持构建平面数据结构($_POST['test[testing]']
可以在其中使用),但是您可以使用以下方法读取原始数据:
$post_body_string = file_get_contents("php://input");
…,然后编写您自己的URL编码的表单数据解析器。