美浩工作室是一个以90后团队为主的网站设计,制作,优化,维护为一体的网站建设工作室,为您量身定制适合企业自身的网站,欢迎咨询:15249241469

php判断手机移动设备访问代码大全

PHP+MYSQL mihoweb 2891℃ 0评论

未标题-1现在是移动互联网比较鼎盛的时代,网站或者是一些应用都会用到判断访问设备,尤其是现在的自适应响应式网站尤为需要的,php判断手机移动设备访问的代码分享给大家:

1、

  1. <?php   
  2. function isMobile()   
  3. {    
  4.     // 如果有HTTP_X_WAP_PROFILE则一定是移动设备   
  5.     if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))   
  6.     {   
  7.         return true;   
  8.     }    
  9.     // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息   
  10.     if (isset ($_SERVER['HTTP_VIA']))   
  11.     {    
  12.         // 找不到为flase,否则为true   
  13.         return stristr($_SERVER['HTTP_VIA'], “wap”) ? true : false;   
  14.     }    
  15.     // 脑残法,判断手机发送的客户端标志,兼容性有待提高   
  16.     if (isset ($_SERVER['HTTP_USER_AGENT']))   
  17.     {   
  18.         $clientkeywords = array (‘nokia’,   
  19.             ’sony’,   
  20.             ’ericsson’,   
  21.             ’mot’,   
  22.             ’samsung’,   
  23.             ’htc’,   
  24.             ’sgh’,   
  25.             ’lg’,   
  26.             ’sharp’,   
  27.             ’sie-’,   
  28.             ’philips’,   
  29.             ’panasonic’,   
  30.             ’alcatel’,   
  31.             ’lenovo’,   
  32.             ’iphone’,   
  33.             ’ipod’,   
  34.             ’blackberry’,   
  35.             ’meizu’,   
  36.             ’android’,   
  37.             ’netfront’,   
  38.             ’symbian’,   
  39.             ’ucweb’,   
  40.             ’windowsce’,   
  41.             ’palm’,   
  42.             ’operamini’,   
  43.             ’operamobi’,   
  44.             ’openwave’,   
  45.             ’nexusone’,   
  46.             ’cldc’,   
  47.             ’midp’,   
  48.             ’wap’,   
  49.             ’mobile’   
  50.             );    
  51.         // 从HTTP_USER_AGENT中查找手机浏览器的关键字   
  52.         if (preg_match(“/(“ . implode(‘|’, $clientkeywords) . “)/i”strtolower($_SERVER['HTTP_USER_AGENT'])))   
  53.         {   
  54.             return true;   
  55.         }    
  56.     }    
  57.     // 协议法,因为有可能不准确,放到最后判断   
  58.     if (isset ($_SERVER['HTTP_ACCEPT']))   
  59.     {    
  60.         // 如果只支持wml并且不支持html那一定是移动设备   
  61.         // 如果支持wml和html但是wml在html之前则是移动设备   
  62.         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’))))   
  63.         {   
  64.             return true;   
  65.         }    
  66.     }    
  67.     return false;   
  68. }    
  69. ?>  

2、

Mobile_Detect 是一个轻量级的开源移动设备(手机)检测的 PHP Class,它使用 User-Agent 中的字符串,并结合 HTTP Header,来检测移动设备环境。这个设备检测的 PHP 类库最强大的地方是,它有一个非常完整的库,可以检测出所用的设备类型(包括操作类型,以及手机品牌等都能检测)和浏览器的详细信息。

  1. //使用实例   
  2.     
  3. include ’Mobile_Detect.php’;   
  4. $detect = new Mobile_Detect();   
  5.     
  6. // Check for any mobile device.   
  7. if ($detect->isMobile())   
  8.     
  9. // Check for any tablet.   
  10. if($detect->isTablet())   
  11.     
  12. // Check for any mobile device, excluding tablets.   
  13. if ($detect->isMobile() && !$detect->isTablet())   
  14.     
  15. if ($detect->isMobile() && !$detect->isTablet())   
  16.     
  17. // Alternative to $detect->isAndroidOS()   
  18. $detect->is(‘AndroidOS’);   
  19.     
  20. // Batch usage   
  21. foreach($userAgents as $userAgent){   
  22.   $detect->setUserAgent($userAgent);   
  23.   $isMobile = $detect->isMobile();   
  24. }   
  25.     
  26. // Version check.   
  27. $detect->version(‘iPad’); // 4.3 (float)  

3、判断访问设备是不是手机的代码:

  1. //判断是否属手机   
  2. function is_mobile() {   
  3.     $user_agent = $_SERVER['HTTP_USER_AGENT'];   
  4.     $mobile_agents = Array(“240×320″,“acer”,“acoon”,“acs-”,“abacho”,“ahong”,“airness”,“alcatel”,“amoi”,“android”,“anywhereyougo.com”,“applewebkit/525″,“applewebkit/532″,“asus”,“audio”,“au-mic”,“avantogo”,“becker”,“benq”,“bilbo”,“bird”,“blackberry”,“blazer”,“bleu”,“cdm-”,“compal”,“coolpad”,“danger”,“dbtel”,“dopod”,“elaine”,“eric”,“etouch”,“fly ”,“fly_”,“fly-”,“go.web”,“goodaccess”,“gradiente”,“grundig”,“haier”,“hedy”,“hitachi”,“htc”,“huawei”,“hutchison”,“inno”,“ipad”,“ipaq”,“ipod”,“jbrowser”,“kddi”,“kgt”,“kwc”,“lenovo”,“lg ”,“lg2″,“lg3″,“lg4″,“lg5″,“lg7″,“lg8″,“lg9″,“lg-”,“lge-”,“lge9″,“longcos”,“maemo”,“mercator”,“meridian”,“micromax”,“midp”,“mini”,“mitsu”,“mmm”,“mmp”,“mobi”,“mot-”,“moto”,“nec-”,“netfront”,“newgen”,“nexian”,“nf-browser”,“nintendo”,“nitro”,“nokia”,“nook”,“novarra”,“obigo”,“palm”,“panasonic”,“pantech”,“philips”,“phone”,“pg-”,“playstation”,“pocket”,“pt-”,“qc-”,“qtek”,“rover”,“sagem”,“sama”,“samu”,“sanyo”,“samsung”,“sch-”,“scooter”,“sec-”,“sendo”,“sgh-”,“sharp”,“siemens”,“sie-”,“softbank”,“sony”,“spice”,“sprint”,“spv”,“symbian”,“tablet”,“talkabout”,“tcl-”,“teleca”,“telit”,“tianyu”,“tim-”,“toshiba”,“tsm”,“up.browser”,“utec”,“utstar”,“verykool”,“virgin”,“vk-”,“voda”,“voxtel”,“vx”,“wap”,“wellco”,“wig browser”,“wii”,“windows ce”,“wireless”,“xda”,“xde”,“zte”);   
  5.     $is_mobile = false;   
  6.     foreach ($mobile_agents as $device) {   
  7.         if (stristr($user_agent$device)) {   
  8.             $is_mobile = true;   
  9.             break;   
  10.         }   
  11.     }   
  12.     return $is_mobile;   
  13. }   
  14. //使用很简单   
  15. if( is_mobile() ){   
  16. Your Code   
  17. }  

4、php判断终端是手机还是电脑访问网站代码

  1. <?php    
  2. function check_wap() {     
  3.     if (isset($_SERVER['HTTP_VIA'])) return true;     
  4.     if (isset($_SERVER['HTTP_X_NOKIA_CONNECTION_MODE'])) return true;     
  5.     if (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID'])) return true;     
  6.     if (strpos(strtoupper($_SERVER['HTTP_ACCEPT']),“VND.WAP.WML”) > 0) {     
  7.         // Check whether the browser/gateway says it accepts WML.     
  8.         $br = “WML”;     
  9.     } else {     
  10.         $browser = isset($_SERVER['HTTP_USER_AGENT']) ? trim($_SERVER['HTTP_USER_AGENT']) : ;     
  11.         if(emptyempty($browser)) return true;   
  12.         $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’);     
  13.                  
  14.         $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’);     
  15.                  
  16.         $found_mobile=checkSubstrs($mobile_os_list,$browser) ||     
  17.                   checkSubstrs($mobile_token_list,$browser);    
  18.                 if($found_mobile)   
  19.                         $br =“WML”;   
  20.                 else $br = “WWW”;   
  21.     }     
  22.     if($br == “WML”) {     
  23.         return true;     
  24.     } else {     
  25.         return false;     
  26.     }     
  27. }   
  28.   
  29. function checkSubstrs($list,$str){   
  30.         $flag = false;   
  31.         for($i=0;$i<count($list);$i++){   
  32.                 if(strpos($str,$list[$i]) > 0){   
  33.                         $flag = true;   
  34.                         break;   
  35.                 }   
  36.         }   
  37.         return $flag;   
  38. }   
  39.   
  40. if(check_wap()){   
  41.         echo “wap”;   
  42. }else{   
  43. echo “web”;   
  44. }   
  45.   
  46. ?>  

以上这四种方法都是对于设备的一个判断,大家可以在实际工作或者开发中使用测试,当然,如果谁有更好的方法或者思路或者此方法有不足或者是错误的地方,可以在下面的评论中提出。

如果您喜欢这篇文章,欢迎分享订阅。

转载请注明:美浩工作室官方博客 » php判断手机移动设备访问代码大全

喜欢 (6)