首页 > 编程 > PHP > 正文

PHP 判断用户的设备是否是移动设备

2019-11-08 01:55:56
字体:
来源:转载
供稿:网友
代码如下:<?phpfunctionisMobile(){    // 如果有HTTP_X_WAP_PROFILE则一定是移动设备    if(isset ($_SERVER['HTTP_X_WAP_PROFILE']))    {        returntrue;    }    // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息    if(isset ($_SERVER['HTTP_VIA']))    {        // 找不到为flase,否则为true        returnstristr($_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'])))        {            returntrue;        }    }    // 协议法,因为有可能不准确,放到最后判断    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'))))        {            returntrue;        }    }    returnfalse;}?>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表