note 88759 deleted from function.get-browser by danbrown

From: Date: Tue, 18 May 2010 15:10:54 +0000
Subject: note 88759 deleted from function.get-browser by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-169359@lists.php.net to get a copy of this message
Note Submitter: admin at studio-gepard dot pl ---- 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 ?>

« previous php.notes (#169359) next »