note 89387 added to function.get-browser

From: Date: Thu, 05 Mar 2009 16:02:27 +0000
Subject: note 89387 added to function.get-browser
Groups: php.notes 
Request: Send a blank email to php-notes+get-151521@lists.php.net to get a copy of this message
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>'; ?> ---- Server IP: 209.41.74.194 Probable Submitter: 200.49.167.170 ---- Manual Page -- http://www.php.net/manual/en/function.get-browser.php Edit -- https://master.php.net/note/edit/89387 Del: integrated -- https://master.php.net/note/delete/89387/integrated Del: useless -- https://master.php.net/note/delete/89387/useless Del: bad code -- https://master.php.net/note/delete/89387/bad+code Del: spam -- https://master.php.net/note/delete/89387/spam Del: non-english -- https://master.php.net/note/delete/89387/non-english Del: in docs -- https://master.php.net/note/delete/89387/in+docs Del: other reasons-- https://master.php.net/note/delete/89387 Reject -- https://master.php.net/note/reject/89387 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#151521) next »