Revision: 34871
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at October 29, 2010 07:52 by danwhite85
Initial Code
<?php function browser_info($agent=null) { // Declare known browsers to look for $known = array('msie', 'firefox', 'safari', 'webkit', 'opera', 'netscape', 'konqueror', 'gecko'); // 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 array if none found) if (!preg_match_all($pattern, $agent, $matches)) return array(); // Since some UAs have more than one phrase (e.g Firefox has a Gecko phrase, // Opera 7,8 have a MSIE phrase), use the last one found (the right-most one // in the UA). That's usually the most correct. $i = count($matches['browser'])-1; return array($matches['browser'][$i] => $matches['version'][$i], 'browser' => $matches['browser'][$i], 'version' => $matches['version'][$i]); } //get browser info $ua = browser_info(); //show what's returned echo '<pre>'; echo print_r( $ua ); echo '</pre>'; /* // Various browser tests you can do with the returned array ... if ($ua['firefox']) ... // true if ($ua['firefox'] > 3) ... // true if ($ua['firefox'] > 4) ... // false if ($ua['browser'] == 'firefox') ... // true if ($ua['version'] > 3.5) ... // true if ($ua['msie']) ... // false ('msie' key not defined) if ($ua['opera'] > 3) ... // false ('opera' key not defined) if ($ua['safari'] < 3) ... // false also ('safari' key not defined) */
Initial URL
Initial Description
Initial Title
PHP browser detection light
Initial Tags
php, browser
Initial Language
PHP