自己瞎学PHP第一个月,最近写了一个根据IP查询运营商的功能函数,给大家分享一下,希望大家多多批评指正
<?php
$ip = '111.111.111.111';
$ip_place = ip_place($ip);//函数返回字符串。
echo $ip_place ;
function ip_place($ip) {
$ipAddr = "http://ip.taobao.com/service/getIpInfo.php?ip=" . $ip;
$contents = json_decode(file_get_contents($ipAddr));//<span style="font-family: Arial, Helvetica, sans-serif;">file_get_contents从ipAddr中获取一个json字符串,json_decode将其解析成一个对象
</span>
//从$contents对象中获取你要的信息
$country = $contents->data->country;
$area = $contents->data->area;
$region = $contents->data->region;
$city = $contents->data->city;
$isp = $contents->data->isp;
$res_str = $country . $area . $region . $city . $isp;
return $res_str;
}
注:jeson_decode函数解析出来的是个对象,格式如下
stdClass Object
(
[code] => 0
[data] => stdClass Object
(
[country] => XXX
[country_id] => XX
[area] => XXX
[area_id] => 3XXXXX
[region] => XXXXX
[region_id] => 33XXXX
[city] => XXXX
[city_id] => 3XXXXX
[county] => XXX
[county_id] => X
[isp] => XXXX
[isp_id] => XXXX
[ip] => XXXX.XXXXX.XXXX.XXXX
)
)
再注:输出的字符串默认是UTF-8格式的,如果有特别需要gb2312格式的地方可以自行转码,我正好写了一个,一并贴上来好了(用的iconv)
$country = iconv("UTF-8","gb2312",$contents->data->country);
$area = iconv("UTF-8","gb2312",$contents->data->area);
$region = iconv("UTF-8","gb2312",$contents->data->region);
$city = iconv("UTF-8","gb2312",$contents->data->city);
$isp = iconv("UTF-8","gb2312",$contents->data->isp);