欢迎来到代码驿站!

PHP代码

当前位置:首页 > 软件编程 > PHP代码

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

时间:2020-11-27 10:46:48|栏目:PHP代码|点击:

功能:

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';
  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->Pinyin("$currentCityName",'UTF8');
  break;
 }

 //重定向浏览器
 header("Location: https://www.jb51.net");
 exit;

上一篇:Email+URL的判断和自动转换函数

栏    目:PHP代码

下一篇:PHP中的socket_read和socket_recv区别详解

本文标题:根据ip调用新浪api获取城市名并转成拼音

本文地址:http://www.codeinn.net/misctech/26702.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有