根据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 相关文章推荐
火车头采集器3.0采集图文教程
Mar 17 PHP
Destoon模板制作简明教程
Jun 20 PHP
PIGCMS 如何关闭聊天机器人
Feb 12 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
Jun 19 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
Jul 09 PHP
详解WordPress中分类函数wp_list_categories的使用
Jan 04 PHP
PHP中Socket连接及读写数据超时问题分析
Jul 19 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
PHP实现断点续传乱序合并文件的方法
Sep 06 PHP
PHP中使用mpdf 导出PDF文件的实现方法
Oct 22 PHP
laravel框架模型和数据库基础操作实例详解
Jan 25 PHP
为你的 Laravel 验证器加上多验证场景的实现
Apr 07 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 表单数据的获取代码
2009/03/10 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
2011/04/17 PHP
php tp验证表单与自动填充函数代码
2012/02/22 PHP
使用PHP编写发红包程序
2015/07/22 PHP
老生常谈PHP面向对象之解释器模式
2017/05/17 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
ext实现完整的登录代码
2008/08/08 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
jQuery实现垂直半透明手风琴特效代码分享
2015/08/21 Javascript
JavaScript表单验证实例之验证表单项是否为空
2016/01/10 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
2017/11/15 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
[03:39]这就是刀塔,我们是冠军!燃情短片讲述我们的DOTA故事
2019/07/02 DOTA
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
Python求离散序列导数的示例
2019/07/10 Python
django的csrf实现过程详解
2019/07/26 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
如何通过python实现人脸识别验证
2020/01/17 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
车库门开启器、遥控器和零件:Chamberlain
2019/04/09 全球购物
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
单方离婚协议书范本(2014版)
2014/09/30 职场文书
班主任自我评价范文
2015/03/11 职场文书
小学班主任工作经验交流材料
2015/11/02 职场文书
css3 实现文字闪烁效果的三种方式示例代码
2021/04/25 HTML / CSS
试了下Golang实现try catch的方法
2021/07/01 Golang
使用 Apache 反向代理的设置技巧
2022/01/18 Servers