note 89387 added to function.get-browser
| From: | ceo/a/mmg5/ dot /com at osu1 dot php dot net | 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