Descrição: Captura o nome e a versão do browser que está sendo utilizado
Sintaxe: Nas últimas duas linhas de cada função, tem a sintaxe de como usar
Retorno: Duas String de retorno, uma para o browser outra para a versão
Descrição: Chame as funções somente pelo seu nome a a propriedade (nome do browser ou versão) q quer exibir
Bibliotecas: Nenhuma
Limitações: PHP 5.0+
função1
<?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; } } ?> <?PHP $browser = new Browser; echo $browser->Name ." "; echo $browser->Version; ?>
função2
<? // _______ // ----- | CONF. | // ������� // add new browsers in lower case here, separated // by spaces - order is important: from left to // right browser family becomes more precise $browsers = "mozilla msie gecko firefox "; $browsers.= "konqueror safari netscape navigator "; $browsers.= "opera mosaic lynx amaya omniweb"; // _______ // ----- |PROCESS| // ������� $browsers = split(" ", $browsers); $nua = strToLower( $_SERVER['HTTP_USER_AGENT']); $l = strlen($nua); for ($i=0; $i<count($browsers); $i++){ $browser = $browsers[$i]; $n = stristr($nua, $browser); if(strlen($n)>0){ $GLOBALS["ver"] = ""; $GLOBALS["nav"] = $browser; $j=strpos($nua, $GLOBALS["nav"])+$n+strlen($GLOBALS["nav"])+1; for (; $j<=$l; $j++){ $s = substr ($nua, $j, 1); if(is_numeric($GLOBALS["ver"].$s) ) $GLOBALS["ver"] .= $s; else break; } } } // _______ // ----- | USE | // ������� echo("<pre>Your browser is: "); echo($GLOBALS["nav"] . " " . $GLOBALS["ver"] . "</pre>"); ?>
Abraços
Edição feita por: Camarão, 21/08/2009, 11:16.