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

php中文网
发布: 2016-06-23 14:15:03
原创
1368人浏览过

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
)

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 的第二个参数是指示是否对象也用数组返回,默认不是 恩,大侠哦,互相关注吧,我想拜你大师

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号