解决 PHP 的 JSON POST 中的 HTTP 请求正文解析
在 PHP 中开发 Webhook 端点时,检索和解析 JSON 负载可能具有挑战性。本文解决了尝试在 JSON POST 场景中读取 HTTP 请求正文时遇到的常见问题。
第一步涉及验证请求标头是否正确指示有效负载中是否存在 JSON 数据。在这种情况下,请求标头显示一个等待解析的大型 JSON 对象。然而,直接通过 $_POST['json'] 或 $_POST 等方法访问该对象是不可行的,因为数据不是以数组的形式构造的。
一些开发人员求助于使用 file_get_contents('php:/ /input') 或 fopen('php://input', 'r') 获取请求正文。然而,单独使用这些方法是不够的;我们还需要 json_decode() 函数将原始 JSON 字符串转换为可访问的格式。
据发现,正确的方法包括组合这些步骤。解决方案如下:
$inputJSON = file_get_contents('php://input'); $input = json_decode($inputJSON, TRUE); //convert JSON into array
通过将 json_decode() 的第二个参数设置为 TRUE,JSON 被转换为关联数组。这样可以轻松访问和操作 PHP 脚本中的数据,满足解析 POST-ed JSON 对象并与之交互的要求。
以上是如何在 PHP 中正确解析 JSON POST 请求体?的详细内容。更多信息请关注PHP中文网其他相关文章!