【发布时间】:2016-03-25 15:07:31
【问题描述】:
在我的 MY_Controller.php 中,我想检测用户设备和请求的域名。我在同一个应用上使用的域名是:www.seeme.tld 和 m.seeme.tld,我也在使用 $this->detect()。 所以这就是我所做的:
<?php
if($this->detect->isMobile() || $_SERVER['HTTP_HOST'] === MOBILE_URL){
$this->config->set_item('base_url', MOBILE_URL);
}elseif(!$this->detect->isMobile() || $_SERVER['HTTP_HOST'] != MOBILE_URL){
$this->config->set_item('base_url', WEBSITE_URL);
}
?>
我在 application/views 文件夹中有 2 个文件夹:PC(适用于 PC 用户)和 Mobile(适用于移动用户)
为了加载视图,我在 fetch() 函数中使用了这段代码:
public function fetch($view, $data = array, $other_vars = false)
{
if(base_url() === MOBILE_URL || $this->_ci->detect->isMobile()){
$f = 'Mobile/';
}elseif(!$this->_ci->detect->isMobile() || base_url() != MOBILE_URL){
$f = 'PC/';
}
return $this->_ci->load->view($f.'contents/'.$view, $data, true);
}
当我使用移动设备或通过移动设备访问 m.seeme.tld 时,我会获得移动内容。但是当我用 PC 访问 m.seeme.tld 而不是获取移动内容时,我宁愿获取 PC 内容。请帮我解决这个问题!
【问题讨论】:
-
为什么不在
fetch函数中将elseif更改为简单的else? -
@Vickel 没有寻找移动检测脚本。我已经在使用 mobiledetect.net
-
@Keeleon 仍在显示电脑内容。
标签: php codeigniter mobile