根据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 相关文章推荐
ob_start(),ob_start('ob_gzhandler')使用
Dec 25 PHP
php 删除记录同时删除图片文件的实现代码
May 12 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
PHP模板引擎smarty详细介绍
May 26 PHP
双冒号 ::在PHP中的使用情况
Nov 05 PHP
PHP MSSQL 分页实例
Apr 13 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
PHP实现的折半查询算法示例
Oct 09 PHP
php-msf源码详解
Dec 25 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 PHP
php和redis实现秒杀活动的流程
Jul 17 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
Oct 08 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
德生S2000电路分析
2021/03/02 无线电
一个简单的PHP&amp;MYSQL留言板源码
2020/07/19 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
javascript 学习笔记(八)javascript对象
2011/04/12 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
JavaScript Split()方法
2015/12/18 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
详解Python中的文件操作
2016/08/28 Python
python购物车程序简单代码
2018/04/18 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
python中os包的用法
2020/06/01 Python
香蕉共和国工厂店:Banana Republic Factory
2018/06/09 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
自主招生自荐信
2013/12/08 职场文书
公司周年庆典邀请函
2014/01/12 职场文书
药品促销活动方案
2014/02/14 职场文书
农林环境专业求职信
2014/03/13 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
车间统计员岗位职责
2015/04/14 职场文书
交通安全教育主题班会
2015/08/12 职场文书
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis