配置手机端和电脑端访问不同页面的通用方法(以thinkphp5为例)

原创
2018/05/04 09:18
阅读数 484

将以下代码放在入口文件public/index.php目录下面即可实现

//判断是否是手机
function is_mobile()
{   

    $user_agent = $_SERVER['HTTP_USER_AGENT'];
    $mobile_agents = Array("240x320","acer","acoon","acs-","abacho","ahong",
        "airness","alcatel","amoi","android","applewebkit/525","applewebkit/532",
        "asus","audio","au-mic","avantogo","becker","benq","bilbo","bird","blackberry",
        "blazer","bleu","cdm-","compal","coolpad","danger","dbtel","dopod","elaine",
        "eric","etouch","fly ","fly_","fly-","go.web","goodaccess","gradiente","grundig",
        "haier","hedy","hitachi","htc","huawei","hutchison","inno","ipad","ipaq","ipod",
        "jbrowser","kddi","kgt","kwc","lenovo","lg","lg2","lg3","lg4","lg5","lg7","lg8",
        "lg9","lg-","lge-","lge9","longcos","maemo","mercator","meridian","micromax","midp",
        "mini","mitsu","mmm","mmp","mobi","mot-","moto","nec-","netfront","newgen","nexian",
        "nf-browser","nintendo","nitro","nokia","nook","novarra","obigo","palm","panasonic",
        "pantech","philips","phone","pg-","playstation","pocket","pt-","qc-","qtek","rover",
        "sagem","sama","samu","sanyo","samsung","sch-","scooter","sec-","sendo","sgh-","sharp",
        "siemens","sie-","softbank","sony","spice","sprint","spv","symbian","tablet","talkabout",
        "tcl-","teleca","telit","tianyu","tim-","toshiba","tsm","up.browser","utec","utstar",
        "verykool","virgin","vk-","voda","voxtel","vx","wap","wellco","wig browser","wii",
        "windows ce","wireless","xda","xde","zte");
    $is_mobile = false;

    foreach ($mobile_agents as $device) {
        if (stristr($user_agent, $device)) {
            $is_mobile = true;
            break;
        }
    }

    return $is_mobile;

}

is_mobile();

if ( is_mobile() ) {
    Header("HTTP/1.1 301 Moved Permanently");
    define('BIND_MODULE','index');
    Header("Location: http://".$_SERVER["HTTP_HOST"].'/index/index/index');
}else{
    Header("HTTP/1.1 301 Moved Permanently");
    define('BIND_MODULE','admin');
    Header("Location: http://".$_SERVER["HTTP_HOST"].'/admin/index/index');
}

这里因为我在Apache里面配置了省略模块名称,所以要加上define()这个函数。

其中BIND_MODULE的作用详情请参见thinkphp官方文档中的入口绑定部分。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部