根据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 相关文章推荐
dedecms中常见问题修改方法总结
Mar 21 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
Jun 04 PHP
PHP容易被忽略而出错陷阱 数字与字符串比较
Nov 10 PHP
PHP高级对象构建 工厂模式的使用
Feb 05 PHP
php实现自动获取生成文章主题关键词功能的深入分析
Jun 03 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
Jun 24 PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
Laravel中错误与异常处理的用法示例
Sep 16 PHP
php无限极分类实现方法分析
Jul 04 PHP
php服务器的系统详解
Oct 12 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
基于Zend的Config机制的应用分析
2013/05/02 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
浅谈php函数serialize()与unserialize()的使用方法
2014/08/19 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
2015/08/10 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
基于bootstrap实现多个下拉框同时搜索功能
2017/07/19 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
python取代netcat过程分析
2018/02/10 Python
python实现猜数字游戏
2020/03/25 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
python字符串下标与切片及使用方法
2020/02/13 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
会计学个人自荐信模板
2013/12/13 职场文书
简短证婚人证婚词
2014/01/09 职场文书
小学毕业家长寄语
2014/01/19 职场文书
幼儿园国庆节活动方案
2014/02/01 职场文书
公司股份合作协议书
2014/12/07 职场文书
学校远程教育工作总结
2015/08/11 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
MySQL的安装与配置详细教程
2021/06/26 MySQL