怎么获取百度坐标api返回的json格式字符串或对象呢
json不怎么熟,比如调用这个接口http://api.map.baidu.com/ag/coord/convert?from=2&to=4&x=116.40624058825688&y=39.90789300648029&callback=callback获得返回的数据是这样的callback&&callback({"error":0,"x":"MTE2LjQxMjYxOTYwMDc1","y":"MzkuOTE0MjIxMTQyNDM3"})
想得到x,y后面的加密数据,注意坐标比较多,需要批量
最好写个示例啊,
------解决方案--------------------$url = 'http://api.map.baidu.com/ag/coord/convert?from=2&to=4&x=116.40624058825688&y=39.90789300648029&callback=callback';
$s = file_get_contents($url);
strtok($s, '(');
$t = json_decode(strtok(')'), 1);
$t['x'] = base64_decode($t['x']);
$t['y'] = base64_decode($t['y']);
print_r($t);
Array
(
[error] => 0
[x] => 116.41261960075
[y] => 39.914221142437
)
------解决方案--------------------print_r( json_decode('{"error":0,"x":"MTE2LjQxMjYxOTYwMDc1","y":"MzkuOTE0MjIxMTQyNDM3"}',true));
Array
(
[error] => 0
[x] => MTE2LjQxMjYxOTYwMDc1
[y] => MzkuOTE0MjIxMTQyNDM3
)
x,y后面的值是base64 加密的
------解决方案--------------------你这是 php 超时了
执行一下 set_time_limit(0);
------解决方案--------------------json_decode 的第二个参数是指示是否对象也用数组返回,默认不是