如何在 PHP 中获取 POST 请求正文作为 JSON?
当将 JSON 数据作为 POST 提交到 PHP 页面时,访问其值可能会看起来很有挑战性,如 var_dump($_POST);返回一个空数组。要检索 JSON 负载,需要特殊的输入流。
使用 php://input 或 STDIN
访问 POST 请求的原始实体主体:
$entityBody = file_get_contents('php://input');
或者,可以使用STDIN:
$entityBody = stream_get_contents(STDIN);
php://input 注意事项
保留 php://input 的可读性
由于 php://input 不可查找,因此只能读取一次。要保留输入流:
function detectRequestBody() { $rawInput = fopen('php://input', 'r'); $tempStream = fopen('php://temp', 'r+'); stream_copy_to_stream($rawInput, $tempStream); rewind($tempStream); return $tempStream; }
处理多部分/表单数据请求
对于多部分/表单数据请求,JSON 负载可直接在$_POST 超全局。
以上是如何在 PHP 中访问 JSON POST 请求正文?的详细内容。更多信息请关注PHP中文网其他相关文章!