PHP判断PC浏览器与手机浏览器的方法

巴扎黑
发布: 2016-11-08 09:52:30
原创
1475 人浏览过

function isMobile() 

    // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 
    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; 
    } 
    // 脑残法,判断手机发送的客户端标志,兼容性有待提高 
    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')         { 
            return true; 
        } 
    } 
    return false; 

?>

相关标签:
php
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板