首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何访问PHP中的JSON POST数据?

如何访问PHP中的JSON POST数据?
EN

Stack Overflow用户
提问于 2014-01-10 18:49:44
回答 2查看 1.2K关注 0票数 0

我正在尝试创建一个网钩来将JSON编码的数据发送给用户web钩子接收器。

我就是这样发送数据的:

代码语言:javascript
运行
复制
$url = 'https://www.example.com/user-webhook-receiver.php';
    $data = array('title' => 'Hello',
    'message' => 'World',
    'url' => 'http://example.com/#check');

    $content = json_encode($data);

    $curl = curl_init($url);
            curl_setopt($curl, CURLOPT_HEADER, false);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_HTTPHEADER,
                    array("Content-type: application/json"));
            curl_setopt($curl, CURLOPT_POST, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $content);

            $json_response = curl_exec($curl);

用户如何访问我发送给他的数据?我试过了,但里面没有内容:

代码语言:javascript
运行
复制
$data = json_decode($_POST);

如何访问数据?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-10 18:55:54

有关如何对这个问题进行编码,请参见CURLOPT_POSTFIELDS。

你需要做的事情是:

代码语言:javascript
运行
复制
$postdata = "content=" . urlencode($content);

在发送方。

然后在接收方:

代码语言:javascript
运行
复制
$content = $_POST['content']; 
$content = urldecode($content);
$json_content = json_decode($content);

虽然,我同意上面的评论,你应该只发送数组。JSON编码它有什么意义--你正在发布这些数据?

编辑:只需发送要执行的数组:

代码语言:javascript
运行
复制
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

(但有关如何使用URL编码的更多细节,请参见我链接的问题)

在接收方,你可以:

代码语言:javascript
运行
复制
$title = $_POST['title'];
$message = $_POST['message'];
票数 0
EN

Stack Overflow用户

发布于 2014-01-10 19:01:00

要在php中读取原始POST数据,可以执行以下操作:

代码语言:javascript
运行
复制
$data = file_get_contents('php://input');

还可以直接将关联数组传递给curl_setopt($curl, CURLOPT_POSTFIELDS, $content); --如果这样做,PHP将能够在接收端自动将其转换回$_POST中的数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21052090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档