要在PHP中整体接收POST数据,有两种方法。
注意,要使用以下两种方法,Content-Type不能为multipart/form-data。
方法一:
使用:
file_get_contents('php://input')
其中,php://input是一个流,可以读取没有处理过的POST数据(即原始数据)。相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置。
方法二:
使用此方法,需要设置php.ini中的always_populate_raw_post_data值为On。
使用$HTTP_RAW_POST_DATA,包含了POST的原始数据。但这不是一个超全局变量,要在函数中使用它,必须声明为global,或使用$GLOBALS['HTTP_RAW_POST_DATA']代替。
如果是laravel框架,可以这样处理:
//$data = $request->all(); //处理post数据
$data= $request->getContent(); //处理json数据
$data = json_decode($data);
dd($data);
有话要说