note 89387 deleted from function.get-browser by danbrown

From: Date: Thu, 12 Nov 2009 14:45:52 +0000
Subject: note 89387 deleted from function.get-browser by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-162808@lists.php.net to get a copy of this message
Note Submitter: ceo /a/ mmg5 /./ com ---- Here is an improved version of admin at studio-gepard dot pl. This code supports: minor versions, checking or return browser data and more browsers like Chrome, Flock and others and version compare. <?php function w($a = '') { if (empty($a)) return array(); return explode(' ', $a); } function _browser($a_browser = false, $a_version = false, $name = false) { $browser_list = 'msie firefox konqueror safari netscape navigator opera mosaic lynx amaya omniweb chrome avant camino flock seamonkey aol mozilla gecko'; $user_browser = strtolower($_SERVER['HTTP_USER_AGENT']); $this_version = $this_browser = ''; $browser_limit = strlen($user_browser); foreach (w($browser_list) as $row) { $row = ($a_browser !== false) ? $a_browser : $row; $n = stristr($user_browser, $row); if (!$n || !empty($this_browser)) continue; $this_browser = $row; $j = strpos($user_browser, $row) + strlen($row) + 1; for (; $j <= $browser_limit; $j++) { $s = trim(substr($user_browser, $j, 1)); $this_version .= $s; if ($s === '') break; } } if ($a_browser !== false) { $ret = false; if (strtolower($a_browser) == $this_browser) { $ret = true; if ($a_version !== false && !empty($this_version)) { $a_sign = explode(' ', $a_version); if (version_compare($this_version, $a_sign[1], $a_sign[0]) === false) { $ret = false; } } } return $ret; } // $this_platform = ''; if (strpos($user_browser, 'linux')) { $this_platform = 'linux'; } elseif (strpos($user_browser, 'macintosh') || strpos($user_browser, 'mac platform x')) { $this_platform = 'mac'; } else if (strpos($user_browser, 'windows') || strpos($user_browser, 'win32')) { $this_platform = 'windows'; } if ($name !== false) { return $this_browser . ' ' . $this_version; } return array( "browser" => $this_browser, "version" => $this_version, "platform" => $this_platform, "useragent" => $user_browser ); } // Examples echo '<pre>'; print_r(_browser()); // return array of browser data var_dump(_browser('firefox')); // return true if using firefox var_dump(_browser('msie', '>= 7.0')); // return true if using IE 7.0 or above else false var_dump(_browser('firefox', '< 3.0.5')); // return true if using below firefox 3.0.5 (can check minor version) var_dump(_browser(false, false, true)); // return string of name of browser and version // To check if Gecko browser is used var_dump(_browser('gecko')); // version_compared function is used so you can use the same operator syntax var_dump(_browser('firefox', 'le 1.5')); echo '</pre>'; ?>

« previous php.notes (#162808) next »