在php中执行curl cmd应该返回json但是返回数组

时间:2017-06-23 19:39:23

标签: php json curl

只是想知道我的curl命令中是否存在一个设置,它阻止数据作为json字符串返回,而是将其作为数组返回。

 $cmd='curl -d @/home/wazilly/public_html/recipe.json -H "Content-Type: 
application/json" "https://api.edamam.com/api/nutrition-details?
app_id=XXXXX&app_key=97d3b48d3a8366572c8012a142e28f50"';
exec($cmd,$result);
echo $result; //prints Array

3 个答案:

答案 0 :(得分:0)

根据documentationexec总是将一个数组作为其第二个参数,它将填充所执行命令的所有输出行。

但是,我不确定你的命令输出是什么样的。您最好在var_dump()$result进行确定。但既然你正在处理卷曲,为什么不简单地使用PHP curl extension

答案 1 :(得分:0)

PHP manual中检查exec()的原型:

string exec ( string $command [, array &$output [, int &$return_var ]] )

PHP返回一个数组。如果你想要原始输出,我认为它实际上可能是JSON,请尝试这样做:

$result = shell_exec($cmd);
echo $result;

答案 2 :(得分:0)

我建议您使用json_encode(array())

将$ result数组转换为JSON格式
echo json_encode($result);