note 91655 added to function.get-browser

From: Date: Sun, 21 Jun 2009 23:11:26 +0000
Subject: note 91655 added to function.get-browser
Groups: php.notes 
Request: Send a blank email to php-notes+get-157204@lists.php.net to get a copy of this message
That's really bizarre. It posted an older version that I tried to post before, but which failed at the time. Anyway, here it is again, this is the proper version. 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] ; } public function __Set($name, $val) { if (!array_key_exists($name, $this->props)) { SimpleError("No such property or function.", "Failed to set $name", $this->props) ; die ; } $this->props[$name] = $val ; } } ?> 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/91655 Del: integrated -- https://master.php.net/note/delete/91655/integrated Del: useless -- https://master.php.net/note/delete/91655/useless Del: bad code -- https://master.php.net/note/delete/91655/bad+code Del: spam -- https://master.php.net/note/delete/91655/spam Del: non-english -- https://master.php.net/note/delete/91655/non-english Del: in docs -- https://master.php.net/note/delete/91655/in+docs Del: other reasons-- https://master.php.net/note/delete/91655 Reject -- https://master.php.net/note/reject/91655 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#157204) next »