当前位置 : 主页 > 网站建设 > 正文

DedeCMS显示当前访问用户地域PHP方法

原创

重庆seo2021-01-26 13:28:18阅读()php开发A+ / A-

网站建设中经常会用到根据访问的用户地域(IP)切换到不同的二级域名,尤其是信息分类网站58、赶集等,用户也可以在指定的页面进行切换到想要到达的二级域名浏览信息。

一般的企业站是不必做那么多的,容易被算法认为在做链轮被降权,如此多的二级域名需要做泛解析,存在一定的风险。有站长不理解的是,为什么分类信息网站能做,而自己不能做?

各地域分站是否都有必要做

在信息分类网站中,用户已经养成习惯选择看本地的信息,并且这些信息区别于其他非本地的信息。用户的需求恰好是有很强的地域性特征,比如:搬家公司、装修公司、送鲜花、企业招聘等。而一般的企业站覆盖的区域比较小,或者没有具体地域需求,只是为了做排名而故意做这种布局。

吖七经常看到有的站长喜欢在每一篇文章前面加一个地域词+核心词,甚至加emoji表情、特殊符号,如:

  • [北京SEO]企业如何开展SEO
  • {湖南SEO}中小企业如何做SEO

每篇文章内容都会故意添加地域词,让搜索引擎认为这样相关度更高,获得更好排名,实际效果还是有一定作用。当然用户在顶部看到显示了自己区域的标识也会提升一些用户体验,下面介绍DedeCMS在指定区域(IP)显示当前地域的PHP方法。

当前访问用户地域显示PHP方法

打开/include/extend.func.php,在最下面增加一下代码。采用百度的API接口,其他还有新浪、淘宝的,但测试后都失效了,由于接口经常变化,本例子也无法保证该接口长期有效。另外一些新的IP并未进入该接口的IP库,可能也显示不出,系统会慢慢补充。

//获取用户IP
function check_address($ip){
if(empty($ip)){
    return  '缺少用户ip';
}

$url = 'https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query='.$ip.'&co=&resource_id=6006&t=&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&cb=&_=';
//调用了百度接口
$str = file_get_contents($url);
//获取返回内容
$encode = mb_detect_encoding($str, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));
$str = mb_convert_encoding($str, 'UTF-8', $encode);

//转化编码
$str=json_decode($str);

//转换为json类型
$str=$str->data[0]->location;

//取出数据
return $str;
}

模板调用方法如下,如果调用失效,找到系统设置 -> 其他设置 -> 模板引擎禁用标签,删除php保存即可

{dede:php}
$str=check_address(GetIp());//GetIP()为当前访问用户的真实IP(xxx.xxx.xxx.xxx),输入结果为“广东省珠海市 中国移动”
$t1 = mb_strpos($str,'');//从结果中的第一个字符开始
$t2 = mb_strpos($str,'市 ');//从'市'左侧结束,当然可以保留该字符,从空格左侧开始,如' '
echo $s = mb_substr($str,$t1,$t2-$t1);
//输出结果为“广东省珠海”
{/dede:php}

因为有直辖市的问题,比如输出结果是“重庆市重庆市 中国移动”,上面模板调用部分的 $t2 后面应写成“市 ”,就是“市”后面加个空格比较准确。

用上面的方法直辖市也可以直接显示“重庆市”,其他地区还可以进一步精简为“广东珠海”,写法如下

{dede:php}
$str=check_address(GetIp());
$t1 = mb_strpos($str,'');
$t2 = mb_strpos($str,'市 ');
$s = mb_substr($str,$t1,$t2-$t1);
$s = str_replace(array('市','省','自治区'),'',$s);//省略所有的省、市、自治区
if($s=='重庆重庆'){
 echo '重庆市';
}
//其他直辖市写法同理
elseif($s=='天津天津'){
 echo '天津市';
}
elseif($s!=''){
 echo "(".$s.")";
}
else echo "";
{/dede:php}

    扩展阅读

    本文地址:https://www.vi586.com/web/768.html
    版权声明:原创文章,版权归重庆SEO吖七所有,欢迎分享本文,支持原创,转载请保留出处

    赞(74)