我正在编写一个注册为 webhook 端点的脚本。我知道它已成功注册,因为我正在将每个请求的 header 写入我的服务器日志。这是一个示例:
Content-Type: text/xml; charset=UTF-8
User-Agent: Jakarta Commons-HttpClient/3.1
Host: =={obfuscated}==
Content-Length: 1918
我注册的 API 将一个 JSON 对象发布到我的脚本中,我想使用 PHP 解析该对象。从请求头中可以看到,有一个漂亮的大 JSON 对象等待解析。这似乎很简单,但事实并非如此。
起初我尝试使用 $_POST['json']
或只是 $_POST
但由于数据不在数组中,我不太确定如何访问它。
我试过使用 file_get_contents('php://input')
和 fopen('php://input', 'r')
有和没有json_decode()
但没有运气。我无法使用 http_get_request_body()
,因为我所在的服务器没有 PECL,这是我无法控制的。
还有其他方法可以与我缺少的 POST-ed JSON 对象进行交互吗?谢谢!
最佳答案
原来我只是需要
$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE); //convert JSON into array
json_decode
中的第二个参数将对象作为数组返回。
https://stackoverflow.com/questions/7047870/