找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1668|回复: 0
打印 上一主题 下一主题

根据ip调用新浪api获取城市名并转成拼音

[复制链接]

2536

主题

2536

帖子

7532

积分

论坛元老

Rank: 8Rank: 8

积分
7532
跳转到指定楼层
楼主
发表于 2018-2-14 05:59:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            功能:
1,获取当前IP地址,
2,调用新浪API,获取到当前城市。
3,将中文转换为拼音后跳转。
[U]复制代码[/U] 代码如下:
//获取当前ip
function getIp(){
  $onlineip='';
  if(getenv('HTTP_CLIENT_IP')&&strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown')){
   $onlineip=getenv('HTTP_CLIENT_IP');
  } elseif(getenv('HTTP_X_FORWARDED_FOR')&&strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),'unknown')){
   $onlineip=getenv('HTTP_X_FORWARDED_FOR');
  } elseif(getenv('REMOTE_ADDR')&&strcasecmp(getenv('REMOTE_ADDR'),'unknown')){
   $onlineip=getenv('REMOTE_ADDR');
  } elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],'unknown')){
   $onlineip=$_SERVER['REMOTE_ADDR'];
  }
  return $onlineip;
}
//获取城市信息api
function getLocation($ip){
  $curl = curl_init();
  curl_setopt($curl, CURLOPT_URL, "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
  $str = curl_exec($curl);
  curl_close($curl);
  return $str;
}
//当前ip地址
$currentIP = getIp();
//通过当前ip获取信息
$getLocation = getLocation($currentIP);
$currentInfo = json_decode($getLocation, true);
//判断ip是否为有效
if($currentInfo['ret'] == '-1')
{
  $currentInfo['city'] = 'unknown';
}
//当前城市中文名
$currentCityName = $currentInfo['city'];  
$currentCityEName = $pin->inyin("$currentCityName",'UTF8');
//城市拼音多音字
switch($currentCityEName)
{
  case 'zhongqing':
   $currentCityEName = 'chongqing';
  break;
  case 'shenfang':
   $currentCityEName = 'shifang';
  break;
  case 'chengdou':
   $currentCityEName = 'chengdu';
  break;
  case 'yueshan':
   $currentCityEName = 'leshan';
  break;
  case 'junxian':
   $currentCityEName = 'xunxian';
  break;
  case 'shamen':
   $currentCityEName = 'xiamen';
  break;
  case 'zhangsha':
   $currentCityEName = 'changsha';
  break;
  case 'weili':
   $currentCityEName = 'yuli';
  break;
  case 'zhaoyang':
   $currentCityEName = 'chaoyang';
  break;
  case 'danxian':
   $currentCityEName = 'shanxian';
  break;
  default:
   $currentCityEName = $pin->inyin("$currentCityName",'UTF8');
  break;
}
//重定向浏览器
header("Location: http://www.jb51.net");
exit;
            
            
您可能感兴趣的文章:
  • php利用新浪接口查询ip获取地理位置示例
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端