程序员技能分享

php判断是手机访问还是电脑浏览器的方法

由于现在很多网站是采用响应式布局的、难免会遇到需要判断是手机用户还是电脑用户,那么在手机访问的时候如果要显示百度广告、体验会很差、所有为响应式做的努力都白费了、下面我们找到判断为手机用户php代码分享给大家。

方法一:

  1. <?php
  2. function isMobile(){
  3.     $useragent=isset($_SERVER[′HTTP_USER_AGENT′]) ?
  4. $_SERVER[′HTTP_USER_AGENT′] : ′′;
  5.     $useragent_commentsblock=preg_match(′|(.*?)|
  6. ′,$useragent,$matches)>0?$matches[0]:′′;
  7.     function CheckSubstrs($substrs,$text){
  8.         foreach($substrs as $substr)
  9.             if(false!==strpos($text,$substr)){
  10.                 return true;
  11.             }
  12.             return false;
  13.     }
  14.     $mobile_os_list=array(′Google Wireless Transcoder′,′Windows CE′,
  15. ′WindowsCE′,′Symbian′,′Android′,′armv6l′,′armv5′,′Mobile′,
  16. ′CentOS′,′mowser′,′AvantGo′,′Opera Mobi′,′J2ME/MIDP′,
  17. ′Smartphone′,′Go.Web′,′Palm′,′iPAQ′);
  18.     $mobile_token_list=array(′Profile/MIDP′,′Configuration/CLDC-′,
  19. ′160×160′,′176×220′,′240×240′,′240×320′,′320×240′,′UP.Browser′,
  20. ′UP.Link′,′SymbianOS′,′PalmOS′,′PocketPC′,′SonyEricsson′,
  21. ′Nokia′,′BlackBerry′,′Vodafone′,′BenQ′,′Novarra-Vision′,
  22. ′Iris′,′NetFront′,′HTC_′,′Xda_′,′SAMSUNG-SGH′,′Wapaka′,
  23. ′DoCoMo′,′iPhone′,′iPod′);
  24.     $found_mobile=CheckSubstrs($mobile_os_list,$useragent_commentsblock) ||    //phpfensi.com
  25.               CheckSubstrs($mobile_token_list,$useragent);
  26.     if ($found_mobile){
  27.         return true;
  28.     }else{
  29.         return false;
  30.     }    }  if (isMobile())
  31.     echo ′手机访问 DD博客′;  else
  32.     echo ′电脑访问 DD博客′;  ?>

方法二:

  1. function is_mobile_request()  {
  2. $_SERVER[′ALL_HTTP′] = isset($_SERVER[′ALL_HTTP′])
  3. $_SERVER[′ALL_HTTP′] : ′′;
  4. $mobile_browser = ′0′;
  5. if(preg_match(′/(up.browser|up.link|mmp|symbian|smartphone|
  6. midp|wap|phone|iphone|ipad|ipod|android|xoom)/i′,
  7. strtolower($_SERVER[′HTTP_USER_AGENT′])))
  8. $mobile_browser  ;
  9. if((isset($_SERVER[′HTTP_ACCEPT′])) and (strpos(strtolower(
  10. $_SERVER[′HTTP_ACCEPT′]),′application/vnd.wap.xhtml xml′) !== false))
  11. $mobile_browser  ;
  12. if(isset($_SERVER[′HTTP_X_WAP_PROFILE′]))
  13. $mobile_browser  ;
  14. if(isset($_SERVER[′HTTP_PROFILE′]))
  15. $mobile_browser  ;
  16. $mobile_ua = strtolower(substr($_SERVER[′HTTP_USER_AGENT′],0,4));
  17. $mobile_agents = array(
  18. ′w3c ′,′acs-′,′alav′,′alca′,′amoi′,′audi′,′avan′,′benq′,′bird′,′blac′,
  19. ′blaz′,′brew′,′cell′,′cldc′,′cmd-′,′dang′,′doco′,′eric′,′hipt′,′inno′,
  20. ′ipaq′,′java′,′jigs′,′kddi′,′keji′,′leno′,′lg-c′,′lg-d′,′lg-g′,′lge-′,
  21. ′maui′,′maxo′,′midp′,′mits′,′mmef′,′mobi′,′mot-′,′moto′,′mwbp′,′nec-′,
  22. ′newt′,′noki′,′oper′,′palm′,′pana′,′pant′,′phil′,′play′,′port′,′prox′,
  23. ′qwap′,′sage′,′sams′,′sany′,′sch-′,′sec-′,′send′,′seri′,′sgh-′,′shar′,
  24. ′sie-′,′siem′,′smal′,′smar′,′sony′,′sph-′,′symb′,′t-mo′,′teli′,′tim-′,
  25. ′tosh′,′tsm-′,′upg1′,′upsi′,′vk-v′,′voda′,′wap-′,′wapa′,′wapi′,′wapp′,
  26. ′wapr′,′webc′,′winw′,′winw′,′xda′,′xda-′
  27. );
  28. if(in_array($mobile_ua$mobile_agents))
  29. $mobile_browser  ;
  30. if(strpos(strtolower($_SERVER[′ALL_HTTP′]), ′operamini′) !== false)
  31. $mobile_browser  ;
  32. // Pre-final check to reset everything if the user is on Windows  
  33. if(strpos(strtolower($_SERVER[′HTTP_USER_AGENT′]), ′windows′) !== false)
  34. $mobile_browser=0;
  35. // But WP7 is also Windows, with a slightly different characteristic  
  36. if(strpos(strtolower($_SERVER[′HTTP_USER_AGENT′]), ′windows phone′) !== false)
  37. $mobile_browser  ;
  38. if($mobile_browser>0)
  39. return true;
  40. else
  41. return false;}

这两种方法我都亲测过、没有问题的、希望对大家有用.

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址