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