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

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


DedeCMS 显示当前访问用户地区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}
声明:本站部分文章来源于网络,如有危害到您的合法权益请联系客服

给TA打赏
共{{data.count}}人
人已打赏
技术教程

windows可以远程连接但无法ping通,怎么解决

2022-1-17 6:16:07

技术教程

PHP为任意页面设访问密码代码PHP分享加密网页隐私页面源码

2023-2-17 19:40:33

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索