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

如何在 PHP 中正确访问 JSON POST 数据?

Barbara Streisand
Barbara Streisand原创
2024-12-22 04:19:12410浏览

How to Properly Access JSON POST Data in PHP?

在 PHP 中访问 POST 数据:解码 JSON Body

在 PHP 中,处理 POST 请求需要访问请求正文以提取提交的数据。接收 JSON 编码的正文时,使用适当的方法检索所需信息非常重要。

JSON 提取

访问 POST 正文中的 JSON 数据,不要依赖$_POST。相反,使用 file_get_contents('php://input'):

$json_input = file_get_contents('php://input');
$data = json_decode($json_input, true);

这会将原始 POST 正文读取为字符串,然后使用 json_decode() 将其解码为 PHP 数组。

处理多部分/表单数据

如果您的 POST 请求有multipart/form-data 编码,数据将自动解析到 $_POST 超全局中。但是,请注意,在这种情况下,您无法使用 php://input 访问原始 JSON 正文。

示例

例如,如果您使用以下命令提交 POST 请求以下 JSON 正文:

{"a": 1}

您的 PHP 代码可以将其解码为如下:

$json_input = file_get_contents('php://input');
$data = json_decode($json_input, true);

var_dump($data['a']); // Outputs: 1

可查找性注意事项

php://input 不可查找,这意味着它只能读取一次。如果您需要为多个读取操作保留流,请考虑使用stream_copy_to_stream()构造临时流或使用php://temp以获得更好的内存管理。

以上是如何在 PHP 中正确访问 JSON POST 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn