众所周知,在 PHP 中,我们可以使用它们各自的全局变量(和)获取GET和POST参数,但是对于PUT、DELETE、PATCH和其他 HTTP 方法的情况,我们看到 PHP 不会为我们处理它.$_GET
$_POST
我尝试了在所有网站/论坛上找到的唯一解决方案,但没有得到我应该得到的结果:
第一次测试:
if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
parse_str(file_get_contents("php://input"),$put_vars);
echo $put_vars['name'];
}
结果:
Notice: Undefined index: name in C:\...\UpdateController.php on line 9
第二次测试:
if ($_SERVER['REQUEST_METHOD'] === 'PUT') {
parse_str(file_get_contents("php://input"),$put_vars);
var_dump($put_vars);
}
结果:
array(1) {
["----------------------------531981617569841925398802
Content-Disposition:_form-data;_name"]=>
string(89) ""name"
Mi nombre y apellidos
----------------------------531981617569841925398802--
"
}
最后,问题有所不同,但基本上,对于那些不知道如何从 PUT、DELETE、PATCH 等请求中获取数据的人来说,这个解决方案是有效的。
对于像我这样没有使用过该解决方案的人,事实证明这是因为在发送请求时,我已经发送了数据
multipart/form-data
(正如马科斯在他的评论中所说)。就我而言,我已经能够
x-www-form-urlencoded
非常轻松地修改 Postman 选项中的“格式”,它对我来说非常有效: