我正在尝试处理 Mandrills webhook 数据。 我将收到带有一些 Json 数据的 $_POST 请求,在处理这些数据时我遇到了一个奇怪的问题。
如果我解码 POST 给出的数据,我只会得到一个空的 var :( 知道为什么吗?
编辑:
有史以来最奇怪的事情......如果我直接使用 Json,它就不起作用,但是如果我将它插入数据库并从那里取出它,它就可以完美工作
$json = $_POST['mandrill_events'];
print_r(json_decode($json,true));
//False
$data['content'] = $_POST['mandrill_events'];
$id = $db->insert('mail', $data);
$get = $db->select('content', 'mail', 'id = "'.(int) $id.'"'); //= mysql_fetch_array($data,MYSQL_ASSOC)
$json = $get['content'];
print_r(json_decode($json,true));
//True
旧代码
/*
print_r($_POST)
Array
(
[mandrill_events] => [{"event":"inbound","ts":1393490345,"msg":{"raw_msg":"Received: from"}}]
(shortend)
)
*/
$test_var = '[{"event":"inbound","ts":1393490345,"msg":{"raw_msg":"Received: from"}}]';
$getMessage = $_POST['mandrill_events'];
print_r($getMessage);
//Until now everything works fantastic
$getMessage = json_decode($getMessage,true);
print_r($getMessage);
//Nothing - the output is empty ;(
$getTestMessage = json_decode($test_var,true);
print_r($getTestMessage);
//works fine
最佳答案
使用斜杠。 对于您的情况:
$json = $_POST['mandrill_events'];
print_r(json_decode(stripslashes($json),true));
关于PHP json_decode 错误 - Mandrill Webhook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22065298/