note 86976 added to function.get-browser
| From: | DanielFrechette at osu1 dot php dot net | Date: | Thu, 13 Nov 2008 06:41:59 +0000 |
| Subject: | note 86976 added to function.get-browser | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-146467@lists.php.net to get a copy of this message | ||
The Great God Om, I reformatted your script, made a few enhancements and fixed a few errors.
<?php
function getBrowserInfo() {
$SUPERCLASS_NAMES = "gecko,mozilla,mosaic,webkit";
$SUPERCLASSES_REGX = "(?:".str_replace(",", ")|(?:",
$SUPERCLASS_NAMES).")";
$SUBCLASS_NAMES = "opera,msie,firefox,chrome,safari";
$SUBCLASSES_REGX = "(?:".str_replace(",", ")|(?:",
$SUBCLASS_NAMES).")";
$browser = "unsupported";
$majorVersion = "0";
$minorVersion = "0";
$fullVersion = "0.0";
$os = 'unsupported';
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
$found = preg_match("/(?P<browser>".$SUBCLASSES_REGX.")(?:\D*)
(?P<majorVersion>\d*)(?P<minorVersion>(?:\.\d*)*)/i",
$userAgent, $matches);
if (!$found) {
$found = preg_match("/(?P<browser>".$SUPERCLASSES_REGX.")(?:\D*)
(?P<majorVersion>\d*)(?P<minorVersion>(?:\.\d*)*)/i",
$userAgent, $matches);
}
if ($found) {
$browser = $matches["browser"];
$majorVersion = $matches["majorVersion"];
$minorVersion = $matches["minorVersion"];
$fullVersion = $matches["majorVersion"].$matches["minorVersion"];
if ($browser != "safari") {
if (preg_match("/version\/(?P<majorVersion>\d*)
(?P<minorVersion>(?:\.\d*)*)/i",
$userAgent, $matches)){
$majorVersion = $matches["majorVersion"];
$minorVersion = $matches["minorVersion"];
$fullVersion = $majorVersion.".".$minorVersion;
}
}
}
if (strpos($userAgent, 'linux')) {
$os = 'linux';
}
else if (strpos($userAgent, 'macintosh') || strpos($userAgent, 'mac os x')) {
$os = 'mac';
}
else if (strpos($userAgent, 'windows') || strpos($userAgent, 'win32')) {
$os = 'windows';
}
return array(
"browser" => $browser,
"majorVersion" => $majorVersion,
"minorVersion" => $minorVersion,
"fullVersion" => $fullVersion,
"os" => $os);
}
?>
----
Server IP: 66.207.199.35
Probable Submitter: 72.10.135.224
----
Manual Page -- http://www.php.net/manual/en/function.get-browser.php
Edit -- https://master.php.net/note/edit/86976
Del: integrated -- https://master.php.net/note/delete/86976/integrated
Del: useless -- https://master.php.net/note/delete/86976/useless
Del: bad code -- https://master.php.net/note/delete/86976/bad+code
Del: spam -- https://master.php.net/note/delete/86976/spam
Del: non-english -- https://master.php.net/note/delete/86976/non-english
Del: in docs -- https://master.php.net/note/delete/86976/in+docs
Del: other reasons-- https://master.php.net/note/delete/86976
Reject -- https://master.php.net/note/reject/86976
Search -- https://master.php.net/manage/user-notes.php