这是我从服务器收到的通知代码,表明我的工作已完成。它以JSON格式返回$_POST
字段,例如xyx
。我尝试了各种组合,甚至包裹在json_decode
中,但它返回NULL
。
我还想从POST访问一些值,以便进一步处理成数据库。
<?php
ini_set('display_errors', 'Off');
echo "notification is arriving ...";
sleep(2);
//echo $_POST['message'];
//print_r($_POST,true);
$json = file_get_contents("php://input");
$obj = json_decode($json);
var_dump($obj); //CHECKING
?>
示例输出:
通知到达...... NULL
编辑: AF_ var_dump($ _ POST);
array(2){[“xyw”] =&gt; string(2262)“{”ok“:”ASSEMBLY_COMPLETED“,”message“:”程序集已成功完成。“,”....和json输出的其余部分。
var_dump(“php:// input”)之后
string(11)“php:// input”..如果我删除引号..没什么。空白页。
答案 0 :(得分:1)
以下一行:
$json = file_get_contents("php://input");
将返回ARRAY,而不是json对象。因此,以下一行:
$obj = json_decode($json);
正在尝试解码一个数组,它会失败(因为$ json的类型是Array而不是json对象。
希望这能回答你的问题。
如果您希望脚本返回json对象,则应使用json_encode,然后回显它。
要阅读,请按以下步骤操作:
$json = file_get_contents("php://input");
$myVar1 = $json['xyw'];
echo $myVar1;
我已经看到你粘贴的输出,我看到它是一个json字符串,你可以按如下方式编码:
$post= file_get_contents("php://input");
$json = json_encode($post['xyw']);
希望这有帮助。