【发布时间】:2018-01-25 13:30:31
【问题描述】:
我正在尝试从 curl 和 json_decode 结果中提取单个数据字符串,但无法正确定位数组元素:
API:
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));
$execResult = curl_exec($ch);
$obj = json_decode($execResult);
结果:
{"success":true,"message":"","result":{"Bid":0.04350003,"Ask":0.04395399,"Last":0.04350003}}
PHP:
echo 'Bid: '.$obj['result']['Bid'].'<br/>';
echo 'Ask: '.$obj['result']['Ask'].'<br/>';
echo 'Last: '.$obj['result']['Last'].'<br/>';
也试过了:
echo 'Bid: '.$obj['Bid'].'<br/>';
echo 'Ask: '.$obj['Ask'].'<br/>';
echo 'Last: '.$obj['Last'].'<br/>';
【问题讨论】:
-
如果要将响应分配给变量,则需要将 CURLOPT_RETURNTRANSFER 设置为 true - 否则,它只会回显到屏幕
-
太棒了!那成功了!谢谢!
-
将来,通过在变量上使用
print_r和var_dump来调试您的代码,首先确定您正在使用的这些变量中是否有数据。整个事情本可以避免并简化为“为什么 curl 不返回数据?” ... 将 json 排除在外,因此有大量关于 json_decode 的相同答案。 -
@iainn 您应该将其发布为答案,以便 Rainer 可以接受。否则,一些随机的新手会准确地发布您所说的以获取功劳;)
-
@IncredibleHat 我做了 print_r,这就是我首先知道返回什么数据的方式:-)