您的位置:首页 > 编程语言 > PHP开发

PHP判断是否手机登陆代码

2013-08-28 00:00 716 查看
PHP判断是否手机登陆是根据$_SERVER['HTTP_USER_AGENT']判断,它是返回用户访问该页面的代理信息。参照网络,我的处理如下:
/**
 * 判断字符串是否包含某一值
 *@Link http://www.phpddt.com  */

    function contains($str = '', $search_str)
    {
        return strpos($str, $search_str) === FALSE ? FALSE : TRUE;
    }


/**
 * 判断手机登陆
 */

    function is_mobilephone()
    {
        $agent = $_SERVER['HTTP_USER_AGENT'];
        //$keywords = array("Android", "iPhone", "iPod", "iPad", "Windows Phone", "MQQBrowser");
        $mobile_os_list=array('Google Wireless Transcoder','Windows CE','WindowsCE','Symbian','Android','armv6l','armv5','Mobile','CentOS','mowser','AvantGo','Opera Mobi','J2ME/MIDP','Smartphone','Go.Web','Palm','iPAQ');  
        $mobile_token_list=array('Profile/MIDP','Configuration/CLDC-','160×160','176×220','240×240','240×320','320×240','UP.Browser','UP.Link','SymbianOS','PalmOS','PocketPC','SonyEricsson','Nokia','BlackBerry','Vodafone','BenQ','Novarra-Vision','Iris','NetFront','HTC_','Xda_','SAMSUNG-SGH','Wapaka','DoCoMo','iPhone','iPod'); 
        $mobile_list = array_merge($mobile_token_list, $mobile_os_list);
        //排除Windows 
        if (!contains($agent, "Windows NT") || (contains($agent, "Windows NT") && contains($agent, "compatible; MSIE"))) {
            //排除Mac 
            if (!contains($agent, "Windows NT") && !contains($agent, "Macintosh")) {
                foreach ($mobile_list as $k => $item) {
                    if (contains($agent, $item)) {
                        return true;
                    }
                }
            }
        }
        return false;
    }


尽管如此,有些手机并不发送UA信息,这会导致判断错误,但是这样几率已经很小了,毕竟现在谁不在用智能手机呢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: