首頁  >  文章  >  後端開發  >  php如何判斷是手機訪問還是電腦訪問

php如何判斷是手機訪問還是電腦訪問

PHPz
PHPz原創
2020-09-25 15:45:283853瀏覽

php判斷是手機存取還是電腦存取的方法:1、如果有【HTTP_X_WAP_PROFILE】,則一定是行動裝置;2、從【HTTP_USER_AGENT】中尋找手機瀏覽器的關鍵字;3、如果只支援wml並且不支援html那一定是行動裝置。

php如何判斷是手機訪問還是電腦訪問

推薦:《PHP影片教學》 

php判斷是手機存取還是電腦存取的方法:

1、如果有HTTP_X_WAP_PROFILE則一定是行動裝置

//判断电脑还是手机访问
    function is_mobile(){ 
        
        if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
        {
            return true;
        } 
        // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
        if (isset ($_SERVER['HTTP_VIA']))
        { 
            // 找不到为flase,否则为true
            return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
        }

2、腦殘法,判斷手機發送的客戶端標誌,相容性有待提升

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;
    } 
}

3、協定法,因為有可能不準確,放到最後判斷

  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;
}

以上是php如何判斷是手機訪問還是電腦訪問的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn