判斷瀏覽器是否爲手機端

//判斷瀏覽器是否爲手機端
function isMobile(){
    // 若是有HTTP_X_WAP_PROFILE則必定是移動設備
    if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
        return true;

    //此條摘自TPM智能切換模板引擎,適合TPM開發
    if(isset ($_SERVER['HTTP_CLIENT'])
        &&'PhoneClient'==$_SERVER['HTTP_CLIENT'])
        return true;
    //若是via信息含有wap則必定是移動設備,部分服務商會屏蔽該信息
    if (isset ($_SERVER['HTTP_VIA']))
        //找不到爲flase,不然爲true
        return stristr($_SERVER['HTTP_VIA'],
            'wap') ? true : false;
    //判斷手機發送的客戶端標誌,兼容性有待提升
    if (isset ($_SERVER['HTTP_USER_AGENT'])) {
        $clientkeywords = array(
            'nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile'
        );
        //從HTTP_USER_AGENT中查找手機瀏覽器的關鍵字
        if (preg_match("/("
            . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
        {
            return true;
        }
    }
    //協議法,由於有可能不許確,放到最後判斷
    if (isset ($_SERVER['HTTP_ACCEPT'])) {
        // 若是隻支持wml而且不支持html那必定是移動設備
        // 若是支持wml和html可是wml在html以前則是移動設備
        if ((strpos($_SERVER['HTTP_ACCEPT'],
                    'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'],
                    'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'],
                        'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'],
                        'text/html')))) {
            return true;
        }
    }
    return false;
}
相關文章
相關標籤/搜索