判断用户是PC还是移动端的php代码

七月 27, 2019 | views
Comments 0

本文我们来分享用php如何识别用户是通过 PC、iPad 还是手机,然后我们还可以看看腾讯的通过JS语句判断WEB网站的访问端是电脑还是手机。

先我们来看看一段用php如何识别用户是通过 PC、iPad 还是手机来访问网站?

  1. <?php 
  2. $uAgent = $_SERVER['HTTP_USER_AGENT']; 
  3. $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"
  4. if(preg_match("/($osPat)/i"$uAgent ))  
  5.     echo "来着PC访问"
  6. //phpfensi.com 
  7. else 
  8.     echo "其他终端访问"
  9.  
  10. ?> 

以下是腾讯的通过JS语句判断WEB网站的访问端是电脑还是手机.

腾讯网的适配代码

如何判断访问网站的机器类型-如何判断ipad

JS 判断浏览器客户端类型(ipad,iphone,android)

  1. <script type="text/javascript">  
  2.     <!--  
  3.             //平台、设备和操作系统  
  4.             var system = {  
  5.                 win: false,  
  6.                 mac: false,  
  7.                 xll: false,  
  8.                 ipad:false  
  9.             };  
  10.             //检测平台  
  11.             var p = navigator.platform;  
  12.             system.win = p.indexOf("Win") == 0;  
  13.             system.mac = p.indexOf("Mac") == 0;  
  14.             system.x11 = (p == "X11") || (p.indexOf("Linux") == 0);  
  15.             system.ipad = (navigator.userAgent.match(/iPad/i) != null)?true:false;  
  16.             //跳转语句,如果是手机访问就自动跳转到wap.baidu.com页面  
  17.             if (system.win || system.mac || system.xll||system.ipad) {  
  18.       
  19.             } else {  
  20.       
  21.                 window.location.href = "http://www.jdpatro.com/3g/";  
  22.             }  
  23.     -->  
  24.     </script>  

腾讯网的适配代码:

  1. <script type="text/javascript">   
  2.     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))){  
  3.         if(window.location.href.indexOf("?mobile")<0){  
  4.             try{  
  5.                 if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){  
  6.                     window.location.href="http://shipei.qq.com/index.htm";  
  7.                 }else if(/iPad/i.test(navigator.userAgent)){  
  8.                 }else{  
  9.                     window.location.href="http://shipei.qq.com/simple/s/index/"  
  10.                 }  
  11.             }catch(e){}  
  12.         }  
  13.     }  
  14.     </script>  
  15.  
  16.     <script type="text/javascript">  
  17.         var browser = {  
  18.             versions : function() {  
  19.                 var u = navigator.userAgent, app = navigator.appVersion;  
  20.                 return {//移动终端浏览器版本信息                                   
  21.                 trident : u.indexOf('Trident') > -1, //IE内核                                   
  22.                 presto : u.indexOf('Presto') > -1, //opera内核                                   
  23.                 webKit : u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核                                   
  24.                 gecko : u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核                                  
  25.                 mobile : !!u.match(/AppleWebKit.*Mobile.*/)  
  26.                         || !!u.match(/AppleWebKit/),//是否为移动终端                                   
  27.                 ios : !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端                   
  28.                 android : u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器                                   
  29.                 iPhone : u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器                      
  30.                 iPad: u.indexOf('iPad') > -1, //是否iPad         
  31.                 webApp : u.indexOf('Safari') == -1,//是否web应该程序,没有头部与底部  
  32.                 google:u.indexOf('Chrome')>-1  
  33.             };  
  34.         }(),  
  35.         language : (navigator.browserLanguage || navigator.language).toLowerCase()  
  36.         }  
  37.         document.writeln("语言版本: "+browser.language);  
  38.         document.writeln(" 是否为移动终端: "+browser.versions.mobile);  
  39.     </script>  

如何判断访问网站的机器类型-如何判断ipad

如何判断是否是 iPad 浏览器呢,关键是看它的 User Agent 中是否有 iPad。iPad 使用的是 Safari Mobile 浏览器,他的的 User Agent 是:

  1. 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 
  2.  
  3. function is_iPad(){         
  4.  [object Object] [object Object] [object Object]var ua = navigator.userAgent.toLowerCase(); 
  5.  [object Object] [object Object] [object Object]if(ua.match(/iPad/i)=="ipad") {                 
  6.  [object Object] [object Object] [object Object] [object Object] [object Object] [object Object]return true; 
  7.  [object Object] [object Object] [object Object]} else { 
  8.  [object Object] [object Object] [object Object] [object Object] [object Object] [object Object]return false; 
  9.  [object Object] [object Object] [object Object]} 
  10.  
  11.  
  12. $is_iPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPad'); 
  13.  
  14. RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$ 
  15. RewriteRule ^(.*)$ http://ipad.fairyfish.net [R=301] 

JS 判断浏览器客户端类型(ipad,iphone,android)

  1. <script type="text/javascript">   
  2.        var bForcepc  
  3.     = fGetQuery("dv") == "pc";    
  4.        function  
  5.     fBrowserRedirect(){    
  6.            var sUserAgent = navigator.userAgent.toLowerCase();   
  7.            var bIsIpad = sUserAgent.match(/ipad/i) ==  
  8.     "ipad";     
  9.            var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";   
  10.            var bIsMidp = sUserAgent.match(/midp/i) == "midp";   
  11.            var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";   
  12.            var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";   
  13.            var bIsAndroid = sUserAgent.match(/android/i) == "android";   
  14.            var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";   
  15.            var bIsWM = sUserAgent.match(/windows mobile/i) == "windows  
  16.     mobile";    
  17.            if(bIsIpad){    
  18.                var sUrl =  
  19.     location.href;       
  20.                if(!bForcepc){    
  21.                    window.location.href = "http://ipad.mail.163.com/";   
  22.                }    
  23.            }    
  24.            if(bIsIphoneOs || bIsAndroid){    
  25.                var sUrl =  
  26.     location.href;       
  27.                if(!bForcepc){    
  28.                    window.location.href = "http://smart.mail.163.com/";   
  29.                }    
  30.            }    
  31.            if(bIsMidp||bIsUc7||bIsUc||bIsCE||bIsWM){    
  32.                var sUrl =  
  33.     location.href;       
  34.                if(!bForcepc){    
  35.                    window.location.href = "http://m.mail.163.com/";   
  36.                }    
  37.            }    
  38.        }   
  39.        function  
  40.     fGetQuery(name){//获取参数值    
  41.            var sUrl = window.location.search.substr(1);   
  42.            var r = sUrl.match(new RegExp("(^|&)" + name +  
  43.     "=([^&]*)(&|$)"));   
  44.            return (r == null ? null : (r[2]));   
  45.        }   
  46.        function  
  47.     fShowVerBlock(){      
  48.            if(bForcepc){    
  49.                document.getElementByIdx_x("dv_block").style.display = "block";   
  50.            }    
  51.            else{    
  52.                document.getElementByIdx_x("ad_block").style.display = "block";   
  53.            }    
  54.        }   
  55.        fBrowserRedirect();    
  56.        </script>



zend