帝国cms教程栏目,提供精品建站,仿站,二次开发,安装,标签使用等图文教程,帮助建设和管理好你的帝国cms站点。
在做城市分站的时候,我们需要在帝国cms模板中获取用户所在的城市,调用对应城市的相关信息。如何获取到用户所在的城市呢?下面我们来看看实现方法。
1.首先在系统模型中先要创建city字段,发布文章时选择选择对应城市,具体操作可以参考帝国模板之家相关文章。
2.在/e/class/userfun.php 中添加如下函数:
function detect_city($ip) {
$default = 'UNKNOWN';
$curlopt_useragent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)';
$url = 'https://ipinfodb.com/ip_locator.php?ip=' . urlencode($ip);
$ch = curl_init();
$curl_opt = array(
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_USERAGENT => $curlopt_useragent,
CURLOPT_URL => $url,
CURLOPT_TIMEOUT => 1,
CURLOPT_REFERER => 'https://' . $_SERVER['HTTP_HOST'],
);
curl_setopt_array($ch, $curl_opt);
$content = curl_exec($ch);
if (!is_null($curl_info)) {
$curl_info = curl_getinfo($ch);
}
curl_close($ch);
if ( preg_match('{<li>City : ([^<]*)</li>}i', $content, $regs) ) {
$city = $regs[1];
}
if ( preg_match('{<li>State/Province : ([^<]*)</li>}i', $content, $regs) ) {
$state = $regs[1];
}
if( $city!='' && $state!='' ){
$location = $city . ', ' . $state;
return $location;
}else{
return $default;
}
}
3.在帝国cms模板中调用获取城市的函数,调用对应城市信息。
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$city = detect_city($ip);
?>
[e:loop={'selfinfo',10,0,0,"city='{$city}'"}]
<a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> <br>
[/e:loop]
推荐教程:帝国CMS教程
以上就是帝国cms模板中获取用户所在城市,调用对应城市信息的方法,大家赶紧测试一下吧,更多内容请关注帝国模板之家。
转载请注明来源:[原创]帝国cms模板中获取用户所在城市,调用对应城市分站信息的方法
本文永久链接地址:https://www.moyouyouw.cn/code/477.html
郑重声明:本站所有主题/文章除标明原创外,均来自网络转载,版权归原作者所有,如果有侵犯到您的权益,请联系本站删除,谢谢!我们不承担任何技术及版权问题,且不对任何资源负法律责任。
售价: 399 146 ℃ 0 评论
售价: 399 126 ℃ 0 评论
售价: 399 93 ℃ 0 评论
已有 位小伙伴发表了看法
欢迎 你 发表评论