<?php
INFO:
Returns Browser information
based on HTTP_USER_AGENT
Ported from The Webmonkey JavaScript Source
##BrowserDetector()
##Parses User-Agent string into useful info.
##Source: Webmonkey Code Library
##([URL]http://www.hotwired.com/webmonkey/javascript/code_library/[/URL])
##Author: Rich Blaylock
##Author Email: [EMAIL]blaylock@wired.com[/EMAIL]
Usage:
include(\"browserDetector.php3\");
$bd = new BrowserDetector;
Variables:
$bd->BROWSER // Netscape, MSIE, Opera
$bd->PLATFORM // Win95, Unix, Windows 98, Mac, PPC, etc.
$bd->VERSION // MajorVersion.MinorVersion
$bd->MAJORVER // Major Version (before . in version string)
$bd->MINORVER // Minor Version (after . in version string)
'****************************************/
class BrowserDetector
{ var $UA = \"\";
var $BROWSER = \"Unknown\";
var $PLATFORM = \"Unknown\";
var $VERSION = \"\";
var $MAJORVER = \"\";
var $MINORVER = \"\";
/* START CONSTRUCTOR */
function BrowserDetector()
{ $this->UA = getenv(HTTP_USER_AGENT);
$preparens = \"\";
$parens = \"\";
$i = strpos($this->UA,\"(\");
if ($i >= 0)
{ $preparens = trim(substr($this->UA,0,$i));
$parens = substr($this->UA,$i+1,strlen($this->UA));
$j = strpos($parens,\")\");
if($j>=0)
{ $parens = substr($parens,0,$j);
}
}
else
{ $preparens = $this->UA;
}
$browVer = $preparens;
$token = trim(strtok($parens,\";\"));
while($token)
{ if($token==\"compatible\")
{
}
elseif(preg_match(\"/MSIE/i\",\"$token\"))
{ $browVer = $token;
}
elseif(preg_match(\"/Opera/i\",\"$token\"))
{ $browVer = $token;
}
elseif(preg_match(\"/X11/i\",\"$token\") || preg_match(\"/SunOS/i\",\"$token\") || preg_match(\"/Linux/i\",\"$token\"))
{ $this->PLATFORM = \"Unix\";
}
elseif(preg_match(\"/Win/i\",\"$token\"))
{ $this->PLATFORM = $token;
}
elseif(preg_match(\"/Mac/i\",\"$token\") || preg_match(\"/PPC/i\",\"$token\"))
{ $this->PLATFORM = $token;
}
$token = strtok(\";\");
}
$msieIndex = strpos($browVer,\"MSIE\");
if($msieIndex >= 0)
{ $browVer = substr($browVer,$msieIndex,strlen($browVer));
}
$leftover = \"\";
if(substr($browVer,0,strlen(\"Mozilla\")) == \"Mozilla\")
{ $this->BROWSER = \"Netscape\";
$leftover=substr($browVer,strlen(\"Mozilla\")+1,strlen($browVer));
}
elseif(substr($browVer,0,strlen(\"Lynx\")) == \"Lynx\")
{ $this->BROWSER = \"Lynx\";
$leftover=substr($browVer,strlen(\"Lynx\")+1,strlen($browVer));
}
elseif(substr($browVer,0,strlen(\"MSIE\")) == \"MSIE\")
{ $this->BROWSER = \"IE\";
$leftover=substr($browVer,strlen(\"MSIE\")+1,strlen($browVer));
}
elseif(substr($browVer,0,strlen(\"Microsoft Internet Explorer\")) == \"Microsoft Internet Explorer\")
{ $this->BROWSER = \"IE\";
$leftover=substr($browVer,strlen(\"Microsoft Internet Explorer\")+1,strlen($browVer));
}
elseif(substr($browVer,0,strlen(\"Opera\")) == \"Opera\")
{ $this->BROWSER = \"Opera\";
$leftover=substr($browVer,strlen(\"Opera\")+1,strlen($browVer));
}
$leftover = trim($leftover);
$i=strpos($leftover,\" \");
if($i > 0)
{ $this->VERSION = substr($leftover,0,$i);
}
else
{ $this->VERSION = $leftover;
}
$j = strpos($this->VERSION,\".\");
if($j >= 0)
{ $this->MAJORVER = substr($this->VERSION,0,$j);
$this->MINORVER = substr($this->VERSION,$j+1,strlen($this->VERSION));
}
else
{ $this->MAJORVER = $this->VERSION;
}
}
}
/******************************************
** Some Test Results
Testing : Mozilla/4.73 [en] (Win98; U)
Browser : Netscape
Platform : Win98
Version : 4.73
Major Version : 4
Minor Version : 73
Testing : Opera/4.0 (Windows 98;US) Beta 3 [en]
Browser : Opera
Platform : Windows 98
Version : 4.0
Major Version : 4
Minor Version : 0
Testing : Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
Browser : IE
Platform : Windows 98
Version : 5.0
Major Version : 5
Minor Version : 0
'****************************************/
?>