User’s browser and platform php class


Because I’ve been working in a drupal website, I tought it would be handy to learn some php so I can make some scripts for it, although I’m still a long long way from making a working drupal module. For now I’m using php code input format when I want to include some script.

As parte of my learning I made a class (which I’me really not using for anythin now) to detect user browser and platform. It uses HTTP_USER_AGENT to obtain the relevant information. Note that te code is mostly untested. I just tested Firefox and Chromium under Linux and Chrome and IE under Windows.

class Agent{
 	private $_browser;
 	private $_os;
 	private $_browsers = array("firefox", "msie", "chrome", "opera", "safari", "mozilla");
 	private $_OS = array("windows", "win32", "linux", "machintosh");

 	public function __Construct(){
 		//Get user agent
 		$info = $_SERVER['HTTP_USER_AGENT'];

 		//Lower string case for easier matches
 		$info = strtolower($info);
 		print $info."";

 		//Search for browser
 		foreach ($this->gt;_browsers as $browser){

 			 if (strpos($info, $browser) === false){
 			 	continue;
 			 }

 			 else{
 			 	$this->_browser = $browser;

 			 	//We need to change the name os IE from msie to IE
 			 	if ($this->_browser === "msie") $this->_browser = "Internet " .
 			 			"Explorer";

 			 	break;// We've found the browser, leave the loop
 			 }
 		}

 		//Search for OS
 		foreach ($this->gt;_OS as $os){

 			 if (strpos($info, $os) === false)
 			 	continue;
 			 else{
 			 	$this->_os = $os;

 			 	//If windows identifies as win32 we change it to Windows
 			 	if ($this->_os == "win32") $this->_os = "Windows";

 			 	break; //We've found our OS, leave loop
 			 }
 		}

 	//Make first letter of browser and OS uppercase
 	$this->_browser = ucfirst($this->_browser);
 	$this->_os = ucfirst($this->_os);

 	}

 	//Selector that returns browser type. The b in Browser is capitalized because of the
 	//library funtion get_browser
 	function get_Browser(){
 		return $this->_browser;
 	}

 	//Selector returns os
 	function get_os(){
 		return $this->_os;
 	}

 	//Browser modifier
 	function set_browser(string $browser){
 		$this->_browser = $browser;
 	}

 	//Os modifier
 	function set_os(string $os){
 		$this->_os = $os;
 	}

 	//Print browser and OS
 	function print_agent(){
 		print $this->_browser."@".$this->_os;
 	} 

 }

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.