php判断访问者是PC还是移动终端

Posted on Posted in php
Tips: 本文创建于2013年11月17日,已超过 2 年,内容或图片可能已经失效!

本博客安装了一个插件,WP-T-WAP,在手机上可以方便管理。

插件相关内容,访问唐高为的主页

DNS解析另一个wap域,但是出现了个问题,用移动终端访问,必须要输入 http://wap.ruofish.com 才能进入移动端的页面,懒得输,所以做了个重定向,自动识别设备。在网上找了代码,备用。

代码一

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

代码二

  1. <?php  
  2. function isMobile() {  
  3. $user_agent = $_SERVER['HTTP_USER_AGENT'];  
  4. $mobile_agents = Array("240x320""acer""acoon",  
  5. "acs-""abacho""ahong""airness""alcatel",  
  6. "amoi""android""anywhereyougo.com",  
  7. "applewebkit/525""applewebkit/532""asus",  
  8. "audio""au-mic""avantogo""becker""benq",  
  9. "bilbo""bird""blackberry""blazer""bleu",  
  10. "cdm-""compal""coolpad""danger""dbtel",  
  11. "dopod""elaine""eric""etouch""fly ",  
  12. "fly_""fly-""go.web""goodaccess",  
  13. "gradiente""grundig""haier""hedy",  
  14. "hitachi""htc""huawei""hutchison",  
  15. "inno""ipad""ipaq""ipod""jbrowser",  
  16. "kddi""kgt""kwc""lenovo""lg ""lg2",  
  17. "lg3""lg4""lg5""lg7""lg8""lg9""lg-",  
  18. "lge-""lge9""longcos""maemo""mercator",  
  19. "meridian""micromax""midp""mini""mitsu",  
  20. "mmm""mmp""mobi""mot-""moto""nec-",  
  21. "netfront""newgen""nexian""nf-browser",  
  22. "nintendo""nitro""nokia""nook""novarra",  
  23. "obigo""palm""panasonic""pantech""philips",  
  24. "phone""pg-""playstation""pocket""pt-",  
  25. "qc-""qtek""rover""sagem""sama""samu",  
  26. "sanyo""samsung""sch-""scooter""sec-",  
  27. "sendo""sgh-""sharp""siemens""sie-",  
  28. "softbank""sony""spice""sprint""spv",  
  29. "symbian
    "
    "tablet""talkabout""tcl-",  
  30. "teleca""telit""tianyu""tim-""toshiba",  
  31. "tsm""up.browser""utec""utstar""verykool",  
  32. "virgin""vk-""voda""voxtel""vx""wap",  
  33. "wellco""wig browser""wii""windows ce",  
  34. "wireless""xda""xde""zte");  
  35. $is_mobile = false;  
  36. foreach ($mobile_agents as $device) {  
  37. if (stristr($user_agent$device)) {  
  38. $is_mobile = true;  
  39. break;  
  40. }  
  41. }  
  42. return $is_mobile;  
  43. }  
  44. if( isMobile() ){  
  45. Header("Location: http://wap.ruofish.com");  
  46. }else  
  47. {  
  48. define('WP_USE_THEMES', true);  
  49. /** Loads the WordPress Environment and Template */  
  50. require( dirname( __FILE__ ) . '/wp-blog-header.php' );  
  51. }  

Leave a Reply

Your email address will not be published. Required fields are marked *

20 − 18 =