note 91654 added to function.get-browser
| From: | expendable at NOSPAM dot sgperkins dot org | Date: | Sun, 21 Jun 2009 23:04:35 +0000 |
| Subject: | note 91654 added to function.get-browser | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-157203@lists.php.net to get a copy of this message | ||
This is a simple class to detect the client browser and version using regular expressions.
<?PHP
class Browser
{
private $props = array("Version" => "0.0.0",
"Name" => "unknown",
"Agent" => "unknown") ;
public function __Construct()
{
$browsers = array("firefox", "msie", "opera", "chrome",
"safari",
"mozilla", "seamonkey", "konqueror", "netscape",
"gecko", "navigator", "mosaic", "lynx",
"amaya",
"omniweb", "avant", "camino", "flock",
"aol");
$this->Agent = strtolower($_SERVER['HTTP_USER_AGENT']);
foreach($browsers as $browser)
{
if (preg_match("#($browser)[/ ]?([0-9.]*)#", $this->Agent, $match))
{
$this->Name = $match[1] ;
$this->Version = $match[2] ;
break ;
}
}
}
public function __Get($name)
{
if (!array_key_exists($name, $this->props))
{
die "No such property or function $name)" ;
}
return $this->props[$name] ;
}
}
?>
example code
<?PHP
$browser = new Browser ;
echo "$Browser->Name $Browser->Version" ;
?>
result when client using Firefox 3.0.11
firefox 3.0.11
result when client using unknown browser
unknown 0.0.0
etc etc
----
Server IP: 209.41.74.194
Probable Submitter: 82.36.72.125
----
Manual Page -- http://www.php.net/manual/en/function.get-browser.php
Edit -- https://master.php.net/note/edit/91654
Del: integrated -- https://master.php.net/note/delete/91654/integrated
Del: useless -- https://master.php.net/note/delete/91654/useless
Del: bad code -- https://master.php.net/note/delete/91654/bad+code
Del: spam -- https://master.php.net/note/delete/91654/spam
Del: non-english -- https://master.php.net/note/delete/91654/non-english
Del: in docs -- https://master.php.net/note/delete/91654/in+docs
Del: other reasons-- https://master.php.net/note/delete/91654
Reject -- https://master.php.net/note/reject/91654
Search -- https://master.php.net/manage/user-notes.php