判斷使用者是PC還是移動端的php代碼

來源:互聯網
上載者:User


先我們來看看一段用php如何識別使用者是通過 PC、iPad 還是手機來訪問網站?

<?php
$uAgent = $_SERVER['HTTP_USER_AGENT'];
$osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95|Blackcomb|98|ME|XWindow|ubuntu|Longhorn|AIX|Linux|AmigaOS|BEOS|HP-UX|OpenBSD|FreeBSD|NetBSD|OS\/2|OSF1|SUN";
if(preg_match("/($osPat)/i", $uAgent ))
{
    echo "來著PC訪問";
}
else
{
    echo "其他終端訪問";
}
 
?>

以下是騰訊的通過JS語句判斷WEB網站的訪問端是電腦還是手機

騰訊網的適配代碼
如何判斷訪問網站的機器類型-如何判斷ipad
JS 判斷瀏覽器用戶端類型(ipad,iphone,android)

    <script type="text/javascript">
    <!--
            //平台、裝置和作業系統
            var system = {
                win: false,
                mac: false,
                xll: false,
                ipad:false
            };
            //檢測平台
            var p = navigator.platform;
            system.win = p.indexOf("Win") == 0;
            system.mac = p.indexOf("Mac") == 0;
            system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);
            system.ipad = (navigator.userAgent.match(/iPad/i) != null)?true:false;
            //跳躍陳述式,如果是手機訪問就自動跳轉到wap.baidu.com頁面
            if (system.win || system.mac || system.xll||system.ipad) {
     
            } else {
     
                window.location.href = "http://www.jdpatro.com/3g/";
            }
    -->
    </script>

騰訊網的適配代碼

    <script type="text/javascript">  
    if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){
        if(window.location.href.indexOf("?mobile")<0){
            try{
                if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){
                    window.location.href="http://shipei.qq.com/index.htm";
                }else if(/iPad/i.test(navigator.userAgent)){
                }else{
                    window.location.href="http://shipei.qq.com/simple/s/index/"
                }
            }catch(e){}
        }
    }
    </script>

    <script type="text/javascript">
        var browser = {
            versions : function() {
                var u = navigator.userAgent, app = navigator.appVersion;
                return {//移動終端瀏覽器版本資訊                                  
                trident : u.indexOf('Trident') > -1, //IE核心                                  
                presto : u.indexOf('Presto') > -1, //opera核心                                  
                webKit : u.indexOf('AppleWebKit') > -1, //蘋果、Google核心                                  
                gecko : u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //Firefox核心                                 
                mobile : !!u.match(/AppleWebKit.*Mobile.*/)
                        || !!u.match(/AppleWebKit/), //是否為移動終端                                  
                ios : !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios終端                  
                android : u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android終端或者uc瀏覽器                                  
                iPhone : u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否為iPhone或者QQHD瀏覽器                     
                iPad: u.indexOf('iPad') > -1, //是否iPad        
                webApp : u.indexOf('Safari') == -1,//是否web應該程式,沒有頭部與底部
                google:u.indexOf('Chrome')>-1
            };
        }(),
        language : (navigator.browserLanguage || navigator.language).toLowerCase()
        }
        document.writeln("語言版本: "+browser.language);
        document.writeln(" 是否為移動終端: "+browser.versions.mobile);
    </script>

如何判斷訪問網站的機器類型-如何判斷ipad

如何判斷是否是 iPad 瀏覽器呢,關鍵是看它的 User Agent 中是否有 iPad。iPad 使用的是 Safari Mobile 瀏覽器,他的的 User Agent 是:

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10

function is_iPad(){        
 [object Object] [object Object] [object Object]var ua = navigator.userAgent.toLowerCase();
 [object Object] [object Object] [object Object]if(ua.match(/iPad/i)=="ipad") {                
 [object Object] [object Object] [object Object] [object Object] [object Object] [object Object]return true;
 [object Object] [object Object] [object Object]} else {
 [object Object] [object Object] [object Object] [object Object] [object Object] [object Object]return false;
 [object Object] [object Object] [object Object]}
}


$is_iPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPad');

RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$
RewriteRule ^(.*)$ http://ipad.fairyfish.net [R=301]

JS 判斷瀏覽器用戶端類型(ipad,iphone,android)

    <script type="text/javascript">  
       var bForcepc
    = fGetQuery("dv") == "pc";   
       function
    fBrowserRedirect(){   
           var sUserAgent = navigator.userAgent.toLowerCase();  
           var bIsIpad = sUserAgent.match(/ipad/i) ==
    "ipad";    
           var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";  
           var bIsMidp = sUserAgent.match(/midp/i) == "midp";  
           var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";  
           var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";  
           var bIsAndroid = sUserAgent.match(/android/i) == "android";  
           var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";  
           var bIsWM = sUserAgent.match(/windows mobile/i) == "windows
    mobile";   
           if(bIsIpad){   
               var sUrl =
    location.href;      
               if(!bForcepc){   
                   window.location.href = "http://ipad.mail.163.com/";  
               }   
           }   
           if(bIsIphoneOs || bIsAndroid){   
               var sUrl =
    location.href;      
               if(!bForcepc){   
                   window.location.href = "http://smart.mail.163.com/";  
               }   
           }   
           if(bIsMidp||bIsUc7||bIsUc||bIsCE||bIsWM){   
               var sUrl =
    location.href;      
               if(!bForcepc){   
                   window.location.href = "http://m.mail.163.com/";  
               }   
           }   
       }  
       function
    fGetQuery(name){//擷取參數值   
           var sUrl = window.location.search.substr(1);  
           var r = sUrl.match(new RegExp("(^|&)" + name +
    "=([^&]*)(&|$)"));  
           return (r == null ? null : (r[2]));  
       }  
       function
    fShowVerBlock(){     
           if(bForcepc){   
               document.getElementByIdx_x("dv_block").style.display = "block";  
           }   
           else{   
               document.getElementByIdx_x("ad_block").style.display = "block";  
           }   
       }  
       fBrowserRedirect();   
       </script>


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.