note 88759 added to function.get-browser
| From: | admin at studio-gepard dot pl | Date: | Fri, 06 Feb 2009 10:57:31 +0000 |
| Subject: | note 88759 added to function.get-browser | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-150293@lists.php.net to get a copy of this message | ||
Daniel Frechette's code shown me "unrecognized" for way too many browsers so I
decided to merge small part of his code with tectonikNOSPAM at free dot fr one. I also removed
globals (which I never use), and made a function of it. Detects browser and platform. The input can
be true - for array - or false - for simple string output. Tested - works on Win, Mac, and browsers
specified.
<?php
function checkBrowser($input) {
$browsers = "mozilla msie gecko firefox ";
$browsers.= "konqueror safari netscape navigator ";
$browsers.= "opera mosaic lynx amaya omniweb";
$browsers = split(" ", $browsers);
$userAgent = strToLower( $_SERVER['HTTP_USER_AGENT']);
$l = strlen($userAgent);
for ($i=0; $i<count($browsers); $i++){
$browser = $browsers[$i];
$n = stristr($userAgent, $browser);
if(strlen($n)>0){
$version = "";
$navigator = $browser;
$j=strpos($userAgent, $navigator)+$n+strlen($navigator)+1;
for (; $j<=$l; $j++){
$s = substr ($userAgent, $j, 1);
if(is_numeric($version.$s) )
$version .= $s;
else
break;
}
}
}
if (strpos($userAgent, 'linux')) {
$platform = 'linux';
}
else if (strpos($userAgent, 'macintosh') || strpos($userAgent, 'mac platform
x')) {
$platform = 'mac';
}
else if (strpos($userAgent, 'windows') || strpos($userAgent, 'win32')) {
$platform = 'windows';
}
if ($input==true) {
return array(
"browser" => $navigator,
"version" => $version,
"platform" => $platform,
"userAgent" => $userAgent);
}else{
return "$navigator $version";
}
}
/* USAGE: */
//array output:
$i = checkBrowser(false);
print_r($i);
//will give:
//Array ( [browser] => firefox [version] => 3.0 [platform] => windows [userAgent] =>
mozilla/5.0 (windows; u; windows nt 5.1; pl; rv:1.9.0.6) gecko/2009011913 firefox/3.0.6 )
//string output:
echo checkBrowser(true);
//will give: firefox 3.0
?>
----
Server IP: 82.177.164.100
Probable Submitter: 78.8.130.93
----
Manual Page -- http://www.php.net/manual/en/function.get-browser.php
Edit -- https://master.php.net/note/edit/88759
Del: integrated -- https://master.php.net/note/delete/88759/integrated
Del: useless -- https://master.php.net/note/delete/88759/useless
Del: bad code -- https://master.php.net/note/delete/88759/bad+code
Del: spam -- https://master.php.net/note/delete/88759/spam
Del: non-english -- https://master.php.net/note/delete/88759/non-english
Del: in docs -- https://master.php.net/note/delete/88759/in+docs
Del: other reasons-- https://master.php.net/note/delete/88759
Reject -- https://master.php.net/note/reject/88759
Search -- https://master.php.net/manage/user-notes.php