根据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 相关文章推荐
Memcache 在PHP中的使用技巧
Feb 08 PHP
php checkbox 取值详细说明
Aug 19 PHP
解析PHP自带的进位制之间的转换函数
Jun 08 PHP
使用php语句将数据库*.sql文件导入数据库
May 05 PHP
PHP中的替代语法介绍
Jan 09 PHP
php计算2个日期的差值函数分享
Feb 02 PHP
PHP连接操作access数据库实例
Mar 30 PHP
DEDECMS首页调用图片集里的多张图片
Jun 05 PHP
PHP实现GIF图片验证码
Nov 04 PHP
PHP实现基于mysqli的Model基类完整实例
Apr 08 PHP
Zend Framework入门应用实例详解
Dec 11 PHP
PHP实现一个按钮点击上传多个图片操作示例
Jan 23 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分页显示制作详细讲解
2006/12/05 PHP
利用PHP和AJAX创建RSS聚合器的代码
2007/03/13 PHP
php 无限极分类
2008/03/27 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
2017/08/03 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
详解vue beforeEach 死循环问题解决方法
2020/02/25 Javascript
python使用cookie库操保存cookie详解
2014/03/03 Python
Python中的with...as用法介绍
2015/05/28 Python
使用python 和 lint 删除项目无用资源的方法
2017/12/20 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
python 字符串和整数的转换方法
2018/06/25 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
Python 创建守护进程的示例
2020/09/29 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
银行出纳岗位职责
2013/11/25 职场文书
优秀辅导员事迹材料
2014/02/16 职场文书
医院标语大全
2014/06/23 职场文书
护士求职简历自我评价
2015/03/10 职场文书