根据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的FTP学习(二)[转自奥索]
Oct 09 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
Feb 13 PHP
php使用GD创建保持宽高比缩略图的方法
Apr 17 PHP
各种快递查询--Api接口
Apr 26 PHP
关于PHP定时发送服务的解决办法
Apr 23 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
PHP中__set()实例用法和基础讲解
Jul 23 PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 PHP
php实现的简单多进程服务器类完整示例
Feb 01 PHP
浅谈php常用的7大框架的优缺点
Jul 20 PHP
imagettftext() 失效,不起作用
Mar 09 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生成静态页
2006/11/25 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
PHP反射基础知识回顾
2020/09/10 PHP
js 程序执行与顺序实现详解
2013/05/13 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
JQuery+Bootstrap 自定义全屏Loading插件的示例demo
2019/07/03 jQuery
微信小程序实现吸顶特效
2020/01/08 Javascript
Python MD5文件生成码
2009/01/12 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
Django+Xadmin构建项目的方法步骤
2019/03/06 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
Python3运算符常见用法分析
2020/02/14 Python
python实现扫雷游戏
2020/03/03 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
python cookie反爬处理的实现
2020/11/01 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
通信工程毕业生自荐信
2013/11/01 职场文书
优秀应届毕业生自荐信
2013/11/16 职场文书
上学迟到的检讨书
2014/01/11 职场文书
企业理念标语
2014/06/09 职场文书
融资合作协议书范本
2014/10/17 职场文书
员工年度工作总结2015
2015/05/18 职场文书
党员反邪教心得体会
2016/01/15 职场文书
golang interface判断为空nil的实现代码
2021/04/24 Golang