首页 > 后端开发 > php教程 > 如何在 PHP 中访问 JSON POST 请求正文?

如何在 PHP 中访问 JSON POST 请求正文?

Susan Sarandon
发布: 2024-12-27 06:48:17
原创
110 人浏览过

How to Access JSON POST Request Body in PHP?

如何在 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 是只读流。
  • 应该使用它来代替 $HTTP_RAW_POST_DATA,因为它更可靠并且不依赖于 php.ini指令。
  • enctype="multipart/form-data" 请求不支持 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中文网其他相关文章!

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