note 97088 deleted from function.get-browser by danbrown

From: Date: Thu, 01 Apr 2010 13:41:26 +0000
Subject: note 97088 deleted from function.get-browser by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-167624@lists.php.net to get a copy of this message
Note Submitter: Adam ---- This is a slightly tweaked version of a function that was submitted previously, the previous function seemed to work ok on firefox and it but not on chrome. This has been tested to work with FireFox, IE, and Chrome. <?php function detect_browser( $agent = null ) { // Declare known browsers to look for $known = array( 'msie', 'firefox', 'safari', 'webkit', 'opera', 'netscape', 'konqueror', 'gecko', 'chrome' ); /* * Clean up agent and build regex that matches phrases for known browsers * (e.g. "Firefox/2.0" or "MSIE 6.0" (This only matches the major and minor version numbers. * E.g. "2.0.0.6" is parsed as simply "2.0" */ $agent = strtolower( $agent ? $agent : $_SERVER['HTTP_USER_AGENT'] ); $pattern = '#(?<browser>' . join( '|', $known ) . ')[/ ]+(?<version>[0-9]+(?:\.[0-9]+)?)#'; // Find all phrases (or return empty false if none found) $matches = array(); if( !preg_match_all( $pattern, $agent, $matches ) ) { return false; } // determine which index to use if( count( $matches['browser'] ) > 1 ) { $i = 1; } else { $i = 0; } // return the results return array( $matches['browser'][$i] => $matches['version'][$i] ); } ?>

« previous php.notes (#167624) next »