note 88980 added to function.get-browser
| From: | DanielFrechette at osu1 dot php dot net | Date: | Tue, 17 Feb 2009 00:40:27 +0000 |
| Subject: | note 88980 added to function.get-browser | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-150738@lists.php.net to get a copy of this message | ||
A newer version for those only interested in identifying A-grade browsers. The code was ported in
part from JQuery 1.3.1.
class Browser {
/**
Figure out what browser is used, its version and the platform it is
running on.
The following code was ported in part from JQuery v1.3.1
*/
public static function detect() {
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
// Identify the browser. Check Opera and Safari first in case of spoof. Let Google Chrome be
identified as Safari.
if (preg_match('/opera/', $userAgent)) {
$name = 'opera';
}
elseif (preg_match('/webkit/', $userAgent)) {
$name = 'safari';
}
elseif (preg_match('/msie/', $userAgent)) {
$name = 'msie';
}
elseif (preg_match('/mozilla/', $userAgent) &&
!preg_match('/compatible/', $userAgent)) {
$name = 'mozilla';
}
else {
$name = 'unrecognized';
}
// What version?
if (preg_match('/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/', $userAgent, $matches)) {
$version = $matches[1];
}
else {
$version = 'unknown';
}
// Running on what platform?
if (preg_match('/linux/', $userAgent)) {
$platform = 'linux';
}
elseif (preg_match('/macintosh|mac os x/', $userAgent)) {
$platform = 'mac';
}
elseif (preg_match('/windows|win32/', $userAgent)) {
$platform = 'windows';
}
else {
$platform = 'unrecognized';
}
return array(
'name' => $name,
'version' => $version,
'platform' => $platform,
'userAgent' => $userAgent
);
}
}
Usage:
$browser = TkBrowser::detect();
echo 'You browser is '.$browser['name'].' version
'.$browser['version'].' running on '.$browser['platform'];
Best regards,
Daniel
----
Server IP: 209.41.74.194
Probable Submitter: 66.158.157.48
----
Manual Page -- http://www.php.net/manual/en/function.get-browser.php
Edit -- https://master.php.net/note/edit/88980
Del: integrated -- https://master.php.net/note/delete/88980/integrated
Del: useless -- https://master.php.net/note/delete/88980/useless
Del: bad code -- https://master.php.net/note/delete/88980/bad+code
Del: spam -- https://master.php.net/note/delete/88980/spam
Del: non-english -- https://master.php.net/note/delete/88980/non-english
Del: in docs -- https://master.php.net/note/delete/88980/in+docs
Del: other reasons-- https://master.php.net/note/delete/88980
Reject -- https://master.php.net/note/reject/88980
Search -- https://master.php.net/manage/user-notes.php