使用PHP怎么根据ip调用新浪api获取城市名

本篇文章为大家展示了使用PHP怎么根据ip调用新浪api获取城市名,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

功能:

1,获取当前IP地址,
2,调用新浪API,获取到当前城市。
3,将中文转换为拼音后跳转。

代码如下:


<?php
 include './pinyin.php';

//获取当前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->Pinyin("$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';
,,打破;

,,案例& # 39;沙门# 39;:
,,, $ currentCityEName=& # 39;厦门# 39;;
,,打破;

,,案例& # 39;zhangsha& # 39;:
,,, $ currentCityEName=& # 39;长沙# 39;;
,,打破;

,,案例& # 39;威力# 39;:
,,, $ currentCityEName=& # 39;余莉# 39;;
,,打破;

,,案例& # 39;朝阳# 39;:
,,, $ currentCityEName=& # 39;朝阳# 39;;
,,打破;

,,案例& # 39;danxian& # 39;:
,,, $ currentCityEName=& # 39; shanxian& # 39;;
,,打破;

,,默认值:
,,, currentCityEName=销美元→拼音(“currentCityName"美元;,& # 39;use utf8 # 39;);
,,打破;
,}

,//重定向浏览器
,页眉(“位置:https://www.yisu.com");
,退出;

上述内容就是使用PHP怎么根据ip调用新浪api获取城市名,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

使用PHP怎么根据ip调用新浪api获取城市名