根据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中神奇的fastcgi_finish_request
May 02 PHP
用来解析.htpasswd文件的PHP类
Sep 05 PHP
YII路径的用法总结
Jul 09 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
Jan 20 PHP
PHP中把有符号整型转换为无符号整型方法
May 27 PHP
php中 ob_start等函数截取标准输出的方法
Jun 22 PHP
php删除数组中重复元素的方法
Dec 22 PHP
优化WordPress中文章与评论的时间显示
Jan 12 PHP
Yii2.0表关联查询实例分析
Jul 18 PHP
php封装的单文件(图片)上传类完整实例
Oct 18 PHP
php实现的网页版剪刀石头布游戏示例
Nov 25 PHP
PHP利用DWZ.CN服务生成短网址
Aug 11 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语法(4)
2006/10/09 PHP
PHP对象Object的概念 介绍
2012/06/14 PHP
php获取新浪微博数据API实例
2013/11/12 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
2009/08/04 Javascript
function foo的原型与prototype属性解惑
2010/11/19 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
jquery二级导航内容均分的原理及实现
2013/08/13 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
2019/12/18 Javascript
原生JS实现相邻月份日历
2020/10/13 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
python实现年会抽奖程序
2019/01/22 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
2020/06/22 Python
Python爬虫与反爬虫大战
2020/07/30 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
印尼旅游网站:via
2017/11/12 全球购物
公司出纳岗位职责
2013/12/07 职场文书
工作人员思想汇报
2014/01/09 职场文书
股权转让协议书
2014/04/12 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
2014年工会工作总结
2014/11/12 职场文书
综合测评个人总结
2015/03/03 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server
Python自动化实战之接口请求的实现
2022/05/30 Python