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.










