首页 > 后端开发 > php教程 > 如何从 PHP POST 请求正确访问 JSON 数据?

如何从 PHP POST 请求正确访问 JSON 数据?

Barbara Streisand
发布: 2024-12-23 17:26:10
原创
698 人浏览过

How to Properly Access JSON Data from PHP POST Requests?

如何从 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的别名。

注意事项:

  • php://input is不可查找,因此只能读取一次。
  • 对于大型数据集,请考虑使用临时流对其进行缓冲,例如as:
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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板