Jump to content


Photo

Capturar Browser E Versão


  • Faça o login para participar
1 reply to this topic

#1 Camarão

Camarão

    12 Horas

  • Usuários
  • 123 posts
  • Sexo:Masculino
  • Localidade:Divinópolis

Posted 21/08/2009, 00:58

:rolleyes:

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.

<?php echo("Guilherme Marques Eloi"); ?>

#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 21/08/2009, 08:30

Olá Guilherme,

agradecemos a contribuição, muito útil a classe, apenas gostaria que você adaptasse o tópico ao nosso padrão de postagem para o banco de funções, para que seja de fácil compreensão e busca dos usuários.

[]'sAté mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq