根据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 随机记录mysql rand()造成CPU 100%的解决办法
May 18 PHP
浅谈PHP与C#的值类型指向区别的详解
May 21 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
Sep 30 PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 PHP
PHP exif扩展方法开启详解
Jul 28 PHP
非常实用的PHP常用函数汇总
Dec 17 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
May 16 PHP
Yii全局函数用法示例
Jan 22 PHP
PHP构造二叉树算法示例
Jun 21 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
PHP封装的page分页类定义与用法完整示例
Dec 24 PHP
PHP实现PDO操作mysql存储过程示例
Feb 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
模仿OSO的论坛(三)
2006/10/09 PHP
php中邮箱地址正则表达式实现与详解
2012/04/24 PHP
百度ping方法使用示例 自动ping百度
2014/01/26 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
Fullpage.js固定导航栏-实现定位导航栏
2016/03/17 Javascript
浅析js绑定事件的常用方法
2016/05/15 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
vue实现底部菜单功能
2018/07/24 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
Python实现一个简单的验证码程序
2017/11/03 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
Python进阶之迭代器与迭代器切片教程
2020/01/29 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
Python就将所有的英文单词首字母变成大写
2021/02/12 Python
意大利会呼吸的鞋:Geox健乐士
2017/02/12 全球购物
施工安全协议书
2013/12/11 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
项目合作协议书
2014/04/16 职场文书
2014年巴西世界杯口号
2014/06/05 职场文书
大学生活动总结模板
2014/07/02 职场文书
2014年人大工作总结
2014/12/10 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python
实现GO语言对数组切片去重
2022/04/20 Golang