php判断是手机访问还是电脑浏览器的方法
由于现在很多网站是采用响应式布局的、难免会遇到需要判断是手机用户还是电脑用户,那么在手机访问的时候如果要显示百度广告、体验会很差、所有为响应式做的努力都白费了、下面我们找到判断为手机用户php代码分享给大家。
方法一:
- <?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) || //phpfensi.com
- CheckSubstrs($mobile_token_list,$useragent);
- if ($found_mobile){
- return true;
- }else{
- return false;
- } } if (isMobile())
- echo ′手机访问 DD博客′; else
- echo ′电脑访问 DD博客′; ?>
方法二:
- function is_mobile_request() {
- $_SERVER[′ALL_HTTP′] = isset($_SERVER[′ALL_HTTP′])
- ? $_SERVER[′ALL_HTTP′] : ′′;
- $mobile_browser = ′0′;
- if(preg_match(′/(up.browser|up.link|mmp|symbian|smartphone|
- midp|wap|phone|iphone|ipad|ipod|android|xoom)/i′,
- strtolower($_SERVER[′HTTP_USER_AGENT′])))
- $mobile_browser ;
- if((isset($_SERVER[′HTTP_ACCEPT′])) and (strpos(strtolower(
- $_SERVER[′HTTP_ACCEPT′]),′application/vnd.wap.xhtml xml′) !== false))
- $mobile_browser ;
- if(isset($_SERVER[′HTTP_X_WAP_PROFILE′]))
- $mobile_browser ;
- if(isset($_SERVER[′HTTP_PROFILE′]))
- $mobile_browser ;
- $mobile_ua = strtolower(substr($_SERVER[′HTTP_USER_AGENT′],0,4));
- $mobile_agents = array(
- ′w3c ′,′acs-′,′alav′,′alca′,′amoi′,′audi′,′avan′,′benq′,′bird′,′blac′,
- ′blaz′,′brew′,′cell′,′cldc′,′cmd-′,′dang′,′doco′,′eric′,′hipt′,′inno′,
- ′ipaq′,′java′,′jigs′,′kddi′,′keji′,′leno′,′lg-c′,′lg-d′,′lg-g′,′lge-′,
- ′maui′,′maxo′,′midp′,′mits′,′mmef′,′mobi′,′mot-′,′moto′,′mwbp′,′nec-′,
- ′newt′,′noki′,′oper′,′palm′,′pana′,′pant′,′phil′,′play′,′port′,′prox′,
- ′qwap′,′sage′,′sams′,′sany′,′sch-′,′sec-′,′send′,′seri′,′sgh-′,′shar′,
- ′sie-′,′siem′,′smal′,′smar′,′sony′,′sph-′,′symb′,′t-mo′,′teli′,′tim-′,
- ′tosh′,′tsm-′,′upg1′,′upsi′,′vk-v′,′voda′,′wap-′,′wapa′,′wapi′,′wapp′,
- ′wapr′,′webc′,′winw′,′winw′,′xda′,′xda-′
- );
- if(in_array($mobile_ua, $mobile_agents))
- $mobile_browser ;
- if(strpos(strtolower($_SERVER[′ALL_HTTP′]), ′operamini′) !== false)
- $mobile_browser ;
- // Pre-final check to reset everything if the user is on Windows
- if(strpos(strtolower($_SERVER[′HTTP_USER_AGENT′]), ′windows′) !== false)
- $mobile_browser=0;
- // But WP7 is also Windows, with a slightly different characteristic
- if(strpos(strtolower($_SERVER[′HTTP_USER_AGENT′]), ′windows phone′) !== false)
- $mobile_browser ;
- if($mobile_browser>0)
- return true;
- else
- return false;}
这两种方法我都亲测过、没有问题的、希望对大家有用.