note 88759 deleted from function.get-browser by danbrown
| From: | danbrown@php.net | 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
?>