利用新浪或者淘宝开放api调用ip获取地理位置的时候返回数据是以json形式展现的。但是怎么才能 把这些文件成功赋值给某一变量呢?
\u4e2d\u56fd 这种怎么进行转码呢?PHP Code 复制内容到剪贴板- 返回数据如下 {"code":0,"data":{"country":"\u4e2d\u56fd","country_id":"CN","area":"\u534e\u5317","area_id":"100000","region":"\u5317\u4eac\u5e02","region_id":"110000","city":"\u5317\u4eac\u5e02","city_id"www.0771ybgc.com》:"110100","county":"","county_id":"-1","isp":"\u8054\u901a","isp_id":"100026","ip":"123.123.123.123"}}
- 但是怎么才能 把这些文件成功赋值给某一变量呢?
- \u4e2d\u56fd 这种怎么进行转码呢?
- 代码如下
- $ip="123.123.123.123";
- //获取api的数据病赋值、$res
- $res = @file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip);
- //接收的值如下
- //{"code":0,"data":{"country":"\u4e2d\u56fd","country_id":"CN","area":"\u534e\u5317","area_id":"100000","region":"\u5317\u4eac\u5e02","region_id":"110000","city":"\u5317\u4eac\u5e02","city_id":"110100","county":"","county_id":"-1","isp":"\u8054\u901a","isp_id":"100026","ip":"123.123.123.123"}}
- 进行数据转换
- $json=preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2BE', 'UTF-8', pack('H4', '\\1'))", $res);
- //转换完成以后的代码如下
- {"code":0,"data":{"country":"中国","country_id":"CN","area":"华北","area_id":"100000","region":"北京市","region_id":"110000","city":www.0771ybgc.com/xwzxin/5275.html》
《www.0771ybgc.com/xwzxin/5276.html"北京市","city_id":"110100","county":"","county_id":"-1","isp":"联通","isp_id":"100026","ip":"123.123.123.123"}} - //然后转换为数组
- $arr = (Array)json_decode($json);
- //转换完成以后还需要一次遍历 赋值$ret;
- $ret = array();
- foreach($arr[data] as $key =>$value){
- if(gettype($value) == 'array' || gettype($value) == 'object'){
- $ret[$key] = objtoarr($value);
- }
- else{
- $ret[$key] = $value;
- }
- }
- //数组转换成功 可以直接调用数据
您可以查看-> php根据IP获取ip具体城市地区的方法
php根据新浪淘宝ip 获取json数据的处理数组的方法
最新推荐文章于 2021-04-15 09:40:13 发布