今天在给客户修改主题时候有一项功能,需要显示用户所在国家、省份以及城市,通过新浪的IP查询工具接口利用json可以快速实现

第一步:在function里面丢进下面的代码:

function liuronghuan_getip(){
 if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) {
   $ip = getenv("HTTP_CLIENT_IP");
  } else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) {
   $ip = getenv("HTTP_X_FORWARDED_FOR");
  } else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) {
   $ip = getenv("REMOTE_ADDR");
  } else  if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {
   $ip = $_SERVER['REMOTE_ADDR'];
  } else {
   $ip = "unknown";
  }
 return $ip;
}

function liuronghuan_getLocation($ip=''){
 empty($ip) && $ip = liuronghuan_getip();
 if($ip=="127.0.0.1") return "本机地址";
 $api = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=$ip"; 
 $json = @file_get_contents($api);//调用新浪IP地址库 
 $arr = json_decode($json,true);//解析json
 $country = $arr['country']; //取得国家
 $province = $arr['province'];//获取省份 
 $city = $arr['city']; //取得城市
 if((string)$country == "中国"){
  if((string)($province) != (string)$city){
   $_location = $province.$city;
  }else{
   $_location = $country.$city;      
  }
 }else{
  $_location = $country;
 }
 return $_location;
}

第二步:在需要显示访客地址的地方写入下面的代码:

欢迎您,来自<?php echo liuronghuan_getLocation();?>的朋友!

 

请转载注明出处:刘荣焕 » wordpress显示用户所在国家,省份以及城市

目前共有10条评论

  • 小众网站发表于2年前 (2015-12-18)

    多说留言用户可以显示省份城市吗?

    • liuronghuan发表于2年前 (2015-12-18)

      @小众网站 多说没研究过,其实可以把留言用户的地址存储在数据库中进行调用

  • zero发表于2年前 (2015-12-12)

    请问高亮代码插件的名字叫啥呢

    • liuronghuan发表于2年前 (2015-12-12)

      @zero SyntaxHighlighter++ 绝对是wp上面最好用的代码插件

    • liuronghuan发表于2年前 (2015-12-12)

      @zero SyntaxHighlighter 绝对是wp上面最好用的代码插件

  • 微尚互动发表于2年前 (2015-12-10)

    试过了,可以。欢迎回访

    • liuronghuan发表于2年前 (2015-12-12)

      @微尚互动 已经回访

  • 不锈钢屏风厂家发表于2年前 (2015-12-09)

    来看看

  • DCBUG发表于2年前 (2015-12-07)

    有种被侵犯的感觉。

    • liuronghuan发表于2年前 (2015-12-07)

      @DCBUG 被哪个妹子侵犯了?

发表评论

 
QQ在线咨询
售前咨询热线
13915443864
售后咨询热线
13915443864