Advertisement
Guest User

Device detector

a guest
Jan 22nd, 2014
446
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.09 KB | None | 0 0
  1. <?php
  2. $tablet_browser = 0;
  3. $mobile_browser = 0;
  4.  
  5. if (preg_match('/(tablet|ipad|playbook)|(android(?!.*(mobi|opera mini)))/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
  6.     $tablet_browser++;
  7. }
  8.  
  9. if (preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android|iemobile)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
  10.     $mobile_browser++;
  11. }
  12.  
  13. if ((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') > 0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) {
  14.     $mobile_browser++;
  15. }
  16.  
  17. $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'], 0, 4));
  18. $mobile_agents = array(
  19.     'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
  20.     'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
  21.     'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
  22.     'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
  23.     'newt','noki','palm','pana','pant','phil','play','port','prox',
  24.     'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
  25.     'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
  26.     'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
  27.     'wapr','webc','winw','winw','xda ','xda-');
  28.  
  29. if (in_array($mobile_ua,$mobile_agents)) {
  30.     $mobile_browser++;
  31. }
  32.  
  33. if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'opera mini') > 0) {
  34.     $mobile_browser++;
  35.     //Check for tablets on opera mini alternative headers
  36.     $stock_ua = strtolower(isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])?$_SERVER['HTTP_X_OPERAMINI_PHONE_UA']:(isset($_SERVER['HTTP_DEVICE_STOCK_UA'])?$_SERVER['HTTP_DEVICE_STOCK_UA']:''));
  37.     if (preg_match('/(tablet|ipad|playbook)|(android(?!.*mobile))/i', $stock_ua)) {
  38.       $tablet_browser++;
  39.     }
  40. }
  41.  
  42. if ($tablet_browser > 0) {
  43.    // do something for tablet devices
  44.    print 'is tablet';
  45. }
  46. else if ($mobile_browser > 0) {
  47.    // do something for mobile devices
  48.    print 'is mobile';
  49. }
  50. else {
  51.    // do something for everything else
  52.    print 'is desktop';
  53. }  
  54.  
  55. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement