Posted By

beneberle on 02/10/11


Tagged

php redirect mobile iphone ipod iPad ios


Versions (?)

Who likes this?

1 person have marked this snippet as a favorite

brownrl


Simple User Agent (Mobile and Smartphone) Detection and Redirction with PHP


 / Published in: PHP
 

URL: http://mobiforge.com/developing/story/lightweight-device-detection-php

Though an old post, this is my solution that's been pieced together from various comments on the article linked above.

  1. <?php
  2.  
  3. function is_mobile(){
  4.  
  5. // returns true if one of the specified mobile browsers is detected
  6.  
  7. $regex_match="/(nokia|iphone|android|motorola|^mot\-|softbank|foma|docomo|kddi|up\.browser|up\.link|";
  8. $regex_match.="htc|dopod|blazer|netfront|helio|hosin|huawei|novarra|CoolPad|webos|techfaith|palmsource|";
  9. $regex_match.="blackberry|alcatel|amoi|ktouch|nexian|samsung|^sam\-|s[cg]h|^lge|ericsson|philips|sagem|wellcom|bunjalloo|maui|";
  10. $regex_match.="symbian|smartphone|midp|wap|phone|windows ce|iemobile|^spice|^bird|^zte\-|longcos|pantech|gionee|^sie\-|portalmmm|";
  11. $regex_match.="jig\s browser|hiptop|^ucweb|^benq|haier|^lct|opera\s*mobi|opera\*mini|320x320|240x320|176x220";
  12. $regex_match.=")/i";
  13. return isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE']) or preg_match($regex_match, strtolower($_SERVER['HTTP_USER_AGENT']));
  14. }
  15.  
  16. /*
  17. allow the user a way to force either the full or mobile versions of the site - use a GET parameter on requests:
  18.  
  19. include links to both versions of the site w/ the special force mode parameters, 'mobile' and 'full':
  20.  
  21. <a href="http://www.example.org/?mobile">View Mobile Site</a>
  22. <a href="http://www.example.org/?full">View Full Site</a>
  23.  
  24. Always check for 'mobile' or 'full' parameters before accounting for any User-Agent conditions:
  25. */
  26.  
  27. if ($_GET['mobile']) {
  28. $is_mobile = true;
  29. }
  30.  
  31. if ($_GET['full']) {
  32. $is_mobile = false;
  33. }
  34. if($is_mobile) {
  35. //it's a mobile browser, do something
  36. header("Location: http://www.yoursite.com/mobile");
  37. } else {
  38. //it's not a mobile browser, do something else
  39. header("Location: http://www.yoursite.com/desktop");
  40. // or instead of a redirect, simply build html below
  41.  
  42.  
  43. }
  44.  
  45. ?>

Report this snippet  

Comments

RSS Icon Subscribe to comments
Posted By: Klostrag on December 22, 2012

This one worked for me on Java: [code] String UserAgent = req.getHeader("User-Agent");
if(UserAgent.toLowerCase().replace(' ', '%').matches("\p{Graph}" +"(nokia|iphone|android|motorola|^mot-|softbank|foma|docomo|kddi|up.browser|up.link|"
+"htc|dopod|blazer|netfront|helio|hosin|huawei|novarra|CoolPad|webos|techfaith|palmsource|" +"blackberry|alcatel|amoi|ktouch|nexian|samsung|^sam-|s[cg]h|^lge|ericsson|philips|sagem|wellcom|bunjalloo|maui|" +"symbian|smartphone|midp|wap|phone|windows ce|iemobile|^spice|^bird|^zte-|longcos|pantech|gionee|^sie-|portalmmm|" +"jigs browser|hiptop|^ucweb|^benq|haier|^lct|operas
mobi|operamini|320x320|240x320|176x220)" +"\p{Graph}")){ System.out.println("ENTRYMODE = Mobile");
} else{ System.out.println("ENTRY
MODE = Web"); } [/code]

You need to login to post a comment.