根据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 相关文章推荐
我的论坛源代码(三)
Oct 09 PHP
PHPMailer安装方法及简单实例
Nov 25 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
Jul 03 PHP
PHP数据类型之布尔型的介绍
Apr 28 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
php初始化对象和析构函数的简单实例
Mar 11 PHP
php实现删除空目录的方法
Mar 16 PHP
PHP借助phpmailer发送邮件
May 11 PHP
用php代码限制国内IP访问我们网站
Sep 26 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 PHP
yii2.0框架场景的简单使用示例
Jan 25 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 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
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
PHP字符串 ==比较运算符的副作用
2009/10/21 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
php中防止恶意刷新页面的代码小结
2012/10/31 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
用PHP生成excel文件到指定目录
2015/06/22 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
利用 fsockopen() 函数开放端口扫描器的实例
2017/08/19 PHP
js 自动播放的实例代码
2013/11/19 Javascript
js中通过父级进行查找定位元素
2014/06/15 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
前端性能优化及技巧
2016/05/06 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
python异步任务队列示例
2014/04/01 Python
python函数形参用法实例分析
2015/08/04 Python
Python3中简单的文件操作及两个简单小实例分享
2017/06/18 Python
Python函数返回不定数量的值方法
2019/01/22 Python
Python交互式图形编程的实现
2019/07/25 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
生物科学系大学生的自我评价
2013/12/20 职场文书
优秀毕业生自我鉴定
2014/02/11 职场文书
2014县委书记党的群众路线教育实践活动对照检查材料思想汇报
2014/09/22 职场文书
老干部工作汇报材料
2014/10/28 职场文书
Golang并发工具Singleflight
2022/05/06 Golang
Python 避免字典和元组的多重嵌套问题
2022/07/15 Python