在 PHP 中提取 JSON Post 正文
考虑以下 JSON POST 数据:
{a:1}
在 PHP 中,默认 $_POST 变量将不包含此数据。相反,使用以下方式访问原始 HTTP 请求正文:
$entityBody = file_get_contents('php://input');
或者,使用 STDIN 常量:
$entityBody = stream_get_contents(STDIN);
请注意,php://input 是不可搜索的,只能读取一次。对于大型体,请考虑使用临时文件来维护流资源:
function detectRequestBody() { $rawInput = fopen('php://input', 'r'); $tempStream = fopen('php://temp', 'r+'); stream_copy_to_stream($rawInput, $tempStream); rewind($tempStream); return $tempStream; }
在 POST 请求中指定“multipart/form-data”标头时会发生异常,因为 PHP 已经将此数据解析为$_POST 超全局。
以上是如何在 PHP 中提取 JSON POST 正文?的详细内容。更多信息请关注PHP中文网其他相关文章!