Simple Browser Detection
I wanted a simple and fast PHP browser detector for a script recently. Most scripts are either very out of date or huge and look for every single browser possible. Here’s a simple one that will return the major ones.
function browser_detect(){ //simple major browser detection //returns an array 0=>browser name and version,1=>browser name, 2=>Version no $props = array("Version" => "0.0.0", "Name" => "unknown", "Agent" => "unknown") ; $browsers = array("firefox", "msie", "opera", "chrome", "safari", "mozilla", "seamonkey","konqueror", "netscape", "gecko", "navigator", "mosaic", "lynx", "amaya", "omniweb", "avant", "camino", "flock", "aol"); $user_agent=strtolower($_SERVER['HTTP_USER_AGENT']); foreach($browsers as $browser) { if (preg_match("#($browser)[/ ]?([0-9.]*)#", $user_agent, $match)) { if ($match[1]=='msie')$match[1]='Internet Explorer'; $match[0]=ucwords($match[0]); $match[1]=ucwords($match[1]); $match[2]=round($match[2],1);//just major version return $match; } } return $props;//no match }
The trick was putting Chrome fairly near the start of the $browsers array or it gets missed!
Call browser_detect() which returns an array where
0=>Browser Name and version
1=>Browser Name
2=>Version