根据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 相关文章推荐
PHP4实际应用经验篇(7)
Oct 09 PHP
PHP获取类中常量,属性,及方法列表的方法
Apr 09 PHP
PHP 文章中的远程图片采集到本地的代码
Jul 30 PHP
php简单操作mysql数据库的类
Apr 16 PHP
php通过curl模拟登陆DZ论坛
May 11 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
Jun 17 PHP
在Mac上编译安装PHP7的开发环境
Jul 28 PHP
详解PHP对象的串行化与反串行化
Jan 24 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
通过源码解析Laravel的依赖注入
Jan 22 PHP
laravel实现于语言包的完美切换方法
Sep 29 PHP
php 中的信号处理操作实例详解
Mar 04 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 输出产生XML解析错误
2009/03/03 PHP
简介WordPress中用于获取首页和站点链接的PHP函数
2015/12/17 PHP
PHP获取二叉树镜像的方法
2018/01/17 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
CSS+jQuery实现简单的折叠菜单
2016/12/20 Javascript
AngularJS表单提交实例详解
2017/02/18 Javascript
js前端实现图片懒加载(lazyload)的两种方式
2017/04/24 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
JSON 数据格式详解
2017/09/13 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
JavaScript强制类型转换和隐式类型转换操作示例
2019/05/01 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
JS实现音量控制拖动
2020/01/15 Javascript
python批量查询、汉字去重处理CSV文件
2018/05/31 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
Python图片的横坐标汉字实例
2019/12/04 Python
联想瑞士官方网站:Lenovo Switzerland
2017/11/19 全球购物
医院护士专业个人的求职信
2013/12/09 职场文书
优秀小学生家长评语
2014/01/30 职场文书
上班打牌检讨书
2014/02/07 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
酒店节能降耗方案
2014/05/08 职场文书
国际金融专业自荐信
2014/07/05 职场文书
网球场地租赁协议范本
2014/10/07 职场文书
个人德育工作总结
2015/03/05 职场文书
幼儿园2016年圣诞活动总结
2016/03/31 职场文书
年会邀请函的格式及范文五篇
2019/11/02 职场文书
Python实现列表拼接和去重的三种方式
2021/07/02 Python
win7配置本地ftp服务器的图文教程
2022/08/05 Servers