• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

怎么获取百度坐标api返回的json格式字符串或对象呢

php 搞代码 3年前 (2022-01-23) 27次浏览 已收录 0个评论
文章目录[隐藏]

JSON callback API 百度

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
)

本2文来*源gao($daima.com搞@代@#码(网搞gaodaima代码

print_r( json_decode('{"error":0,"x":"MTE2LjQxMjYxOTYwMDc1","y":"MzkuOTE0MjIxMTQyNDM3"}',true));

Array
(
[error] => 0
[x] => MTE2LjQxMjYxOTYwMDc1
[y] => MzkuOTE0MjIxMTQyNDM3
)

x,y后面的值是base64 加密的

print_r( json_decode('{"error":0,"x":"MTE2LjQxMjYxOTYwMDc1","y":"MzkuOTE0MjIxMTQyNDM3"}',true));

Array
(
[error] => 0
[x] => MTE2LjQxMjYxOTYwMDc1
[y] => MzkuOTE0MjIxMTQyNDM3
)

x,y后面的值是base64 加密的
因为我这个坐标比较多,我想直接批量根据api接口得到返回的加密json数据,不是把已经得到的放进去根据函数格式成数组啊,不知道你明白没哟啊

$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
)
真的谢谢了,就是还有个问题,因为我是foreach动态把数组里的x跟y放进http://api….?from=2&to=4&x={$x}&y={$y}&callback=callback’;跟我返回一个错误Fatal error: Maximum execution time of 30 seconds exceeded in 【file_get_contents】。好像它有请求限制,一次50个,还是一秒转换30个,怎么让它每循环30或50次,停顿1秒,sleep

你这是 php 超时了
执行一下 set_time_limit(0);

你这是 php 超时了
执行一下 set_time_limit(0); 奇怪了,为什么我程序走完了,最后如果走完的话输出成功,可是数据只拿到一半呢,大概4000左右坐标

那要看是否是你的程序问题了

那要看是否是你的程序问题了 不好意思,ok了,原来发现索引不是连续的,我一开始以为要用什么xmlHttprequest,getjson什么的,对了$t = json_decode(strtok(‘)’), 1)里面的参数1是什么意思啊,我知道是得到()里面的数据

json_decode 的第二个参数是指示是否对象也用数组返回,默认不是

json_decode 的第二个参数是指示是否对象也用数组返回,默认不是 恩,大侠哦,互相关注吧,我想拜你大师


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:怎么获取百度坐标api返回的json格式字符串或对象呢

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址