将x-www-form-urlencoded解码为数组

时间:2017-11-29 11:20:15

标签: php arrays rest parsing put

我正在尝试将PUT请求参数转换为服务器中的key =>值数组。

parse_str(file_get_contents('php://input'), $data);

这样我得到一个像这样的“污垢”数组:

Array
(
    [------WebKitFormBoundaryXXXXXXXXXXXXXXXX
Content-Disposition:_form-data;_name] => "birth_date"

1995-01-03
------WebKitFormBoundaryXXXXXXXX
Content-Disposition: form-data; name="age"

15
------WebKitFormBoundaryXXXXXXXX--

)

如何在不手动解析内容的情况下推断出两个key =>值??

1 个答案:

答案 0 :(得分:0)

请求的主体参数是用multipart/form-data而不是application/x-www-form-urlencoded编码的。

x-www-form-urlencoded 版本如下所示:

birth_date=1995-01-03&age=15

解析 multipart / form-data 有点高级。据我所知,PHP中没有内置函数可以做到这一点。 但是您可以使用第三方库:https://github.com/h4cc/multipart

如果您能够以某种方式更改请求的编码方式,则将编码更改为 x-www-form-urlencoded 会容易得多,并且出错的可能性也较小。