如何从 PHP POST 请求中提取 JSON 数据
通过 POST 请求向 PHP 脚本提交 JSON 数据时,访问正文可能会令人困惑。使用 var_dump($_POST);将返回一个空数组。
解决方案:使用 php://input
要访问请求正文,PHP 提供了 php://input:
$entityBody = file_get_contents('php://input');
该流包含原始 POST 数据。您还可以使用stream_get_contents(STDIN),因为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; }
限制:
php://input 对于 Content-Type: multipart/form-data 的请求不可用,如 PHP处理多部分数据
示例:
要在 PHP 代码中访问 JSON 对象 {a:1},请使用:
$json = json_decode(file_get_contents('php://input')); echo $json->a; // 1
以上是如何从 PHP POST 请求正确访问 JSON 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!