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


Posted in PHP onMarch 07, 2014

功能:

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://3water.com"); 
 exit;
PHP 相关文章推荐
php5 and xml示例
Nov 22 PHP
理解PHP5中static和const关键字的区别
Mar 19 PHP
php中支持多种编码的中文字符串截取函数!
Mar 20 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
destoon找回管理员密码的方法
Jun 21 PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 PHP
php实现编辑和保存文件的方法
Jul 20 PHP
PHP 7.0.2 正式版发布
Jan 08 PHP
PHP微信开发之有道翻译
Jun 23 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
在 PHP 和 Laravel 中使用 Traits的方法
Nov 13 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
Dec 13 PHP
体育彩票排列三组选三算法分享
Mar 07 #PHP
PHP错误和异长常处理总结
Mar 06 #PHP
php发送post请求函数分享
Mar 06 #PHP
PHP empty函数报错解决办法
Mar 06 #PHP
PHP APC缓存配置、使用详解
Mar 06 #PHP
PHP程序漏洞产生的原因分析与防范方法说明
Mar 06 #PHP
PHP常用函数和常见疑难问题解答
Mar 05 #PHP
You might like
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
PHP 中魔术常量的实例详解
2017/10/26 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
laravel框架的安装与路由实例分析
2019/10/11 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
javascript 的Document属性和方法集合
2010/01/25 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
js运动动画的八个知识点
2015/03/12 Javascript
谈谈JavaScript自定义回调函数
2015/10/18 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
详解如何使用webpack打包Vue工程
2017/05/27 Javascript
解决vue项目打包后提示图片文件路径错误的问题
2018/07/04 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
Python爬虫中urllib库的进阶学习
2018/01/05 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
Python中Yield的基本用法
2020/10/18 Python
CSS3等相关属性制作分页导航实现代码
2012/12/24 HTML / CSS
大学生通用个人的自我评价
2014/02/10 职场文书
人代会标语
2014/06/30 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
2015年度班主任自我评价
2015/03/11 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
服装店员工管理制度
2015/08/07 职场文书
教你用python实现12306余票查询
2021/06/30 Python
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技