在 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中文网其他相关文章!