zoukankan      html  css  js  c++  java
  • php怎么判断网页是电脑访问还是手机访问

    1.第一种方法 

    <?php 

    function check_wap() {  
        if (isset($_SERVER['HTTP_VIA'])) return true;  
        if (isset($_SERVER['HTTP_X_NOKIA_CONNECTION_MODE'])) return true;  
        if (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID'])) return true;  
        if (strpos(strtoupper($_SERVER['HTTP_ACCEPT']),"VND.WAP.WML") > 0) {  
            // Check whether the browser/gateway says it accepts WML.  
            $br = "WML";  
        } else {  
            $browser = isset($_SERVER['HTTP_USER_AGENT']) ? trim($_SERVER['HTTP_USER_AGENT']) : '';  
            if(empty($browser)) return true;
            $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');  
                        
            $found_mobile=checkSubstrs($mobile_os_list,$browser) ||  
                                checkSubstrs($mobile_token_list,$browser); 
        if($found_mobile)
            $br ="WML";
        else $br = "WWW";
        }  
        if($br == "WML") {  
            return true;  
        } else {  
            return false;  
        }  
    }

    function checkSubstrs($list,$str){
        $flag = false;
        for($i=0;$i<count($list);$i++){
            if(strpos($str,$list[$i]) > 0){
                $flag = true;
                break;
            }
        }
        return $flag;
    }

    if(check_wap()){
        echo "wap";
    }else{
        echo "web";
    }

    ?>

     2.第二种方法

    <?php
    function isMobile(){  
        $useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';  
        $useragent_commentsblock=preg_match('|(.*?)|',$useragent,$matches)>0?$matches[0]:'';        
        function CheckSubstrs($substrs,$text){  
            foreach($substrs as $substr)  
                if(false!==strpos($text,$substr)){  
                    return true;  
                }  
                return false;  
        }
        $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');  
              
        $found_mobile=CheckSubstrs($mobile_os_list,$useragent_commentsblock) ||  
                  CheckSubstrs($mobile_token_list,$useragent);  
              
        if ($found_mobile){  
            return true;  
        }else{  
            return false;  
        }  
    }
    if (isMobile())
        echo '手机登录';
    else
        echo '电脑登录';

    ?> 

  • 相关阅读:
    SpringBoot异步处理请求
    5本最佳的 Java 面向对象理论和设计模式的书籍
    彻底弄懂 HTTP 缓存机制 —— 基于缓存策略三要素分解法
    Java 性能优化的五大技巧
    Java 8 最佳技巧
    Java 并发的四种风味:Thread、Executor、ForkJoin 和 Actor
    在 Java 8 中避免 Null 检查
    关于创建java线程池问题的思考
    LuoguP1858 多人背包(DP)
    Luogu[YNOI2019]排序(DP,线段树)
  • 原文地址:https://www.cnblogs.com/qhorse/p/4595386.html
Copyright © 2011-2022 走看看