根据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 相关文章推荐
PHP新手上路(六)
Oct 09 PHP
PHP中的日期处理方法集锦
Jan 02 PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
10个超级有用值得收藏的PHP代码片段
Jan 22 PHP
yii使用activeFileField控件实现上传文件与图片的方法
Dec 28 PHP
PHP strip_tags保留多个HTML标签的方法
May 22 PHP
php+resumablejs实现的分块上传 断点续传功能示例
Apr 18 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
Jun 04 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
Oct 08 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
May 01 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
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
JavaScript常用数组算法小结
2016/02/13 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
2017/07/03 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
微信小程序签到功能
2018/10/31 Javascript
js实现搜索栏效果
2018/11/16 Javascript
JavaScript对JSON数组简单排序操作示例
2019/01/31 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
简单的编程0基础下Python入门指引
2015/04/01 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
python实现RSA加密(解密)算法
2016/02/17 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
基于python实现音乐播放器代码实例
2020/07/01 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
你所在的项目是如何确定版本号的
2015/12/28 面试题
交通法规咨询中心工作职责
2013/11/27 职场文书
生物科学专业职业规划书范文
2014/02/11 职场文书
村党支部换届选举方案
2014/05/02 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
学术研讨会主持词
2015/07/04 职场文书
初中英语教学随笔
2015/08/15 职场文书
2016春节放假通知范文
2015/08/18 职场文书
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL