Classe User Agent
A Classe User Agent provê funções que auxiliam a identificar informações sobre o navegador, dispositivo móvel, ou o robô que esteja visitando seu site. Você também pode usar esta Classe para obter informações de referrer (de onde vem o usuário), idioma e conjunto de caracteres suportado (charset)
Inicializando a Classe
Da mesma maneira como a maioria das outras classes no Code Igniter, a classe User Agent é inicializada no seu controller usando a função $this->load->library:
$this->load->library('user_agent');
Uma vez carregado, o objeto estará disponível usando: $this->agent
Definições de User Agent
As definições de nome do user agent estão localizadas no arquivo de configuração localizado em application/config/user_agents.php. Você pode adicionar itens às várias arrays do user agent se necessário.
Exemplo
Quando a classe User Agent é inicializada ela tentará determinar se o user agent que está visitando seu site é um navegador (web browser), um dispositivo
móvel ou um robô(spider).Também tentará obter a informação da plataforma, caso esteja disponível.
$this->load->library('user_agent');
if ($this->agent->is_browser())
{
$agent = $this->agent->browser().' '.$this->agent->version();
}
elseif ($this->agent->is_robot())
{
$agent = $this->agent->robot();
}
elseif ($this->agent->is_mobile())
{
$agent = $this->agent->mobile();
}
else
{
$agent = 'Unidentified User Agent';
}
echo $agent;
echo $this->agent->platform(); // Informação de Platforma (Windows, Linux, Mac, etc.)
Referências de Funções
$this->agent->is_browser()
Retorna TRUE/FALSE (booleano) se o user agent é um navegador conhecido.
$this->agent->is_mobile()
Retorna TRUE/FALSE (booleano) se o user agent é um dispositivo móvel conhecido.
$this->agent->is_robot()
Retorna TRUE/FALSE (booleano) se o user agent é um robô conhecido.
Nota: A biblioteca user agent contem apenas as definições de robôs mais comuns. Não é uma lista completa destes. Existe centenas deles, portanto ficar procurando cada um deles pode não algo eficiente (e prático). Caso você ache que algum destes robôs que regularmente visitam seu site está fora da lista, adicione-o no arquivo application/config/user_agents.php.
$this->agent->is_referral()
Retorna TRUE/FALSE (booleano) se o the user agent foi referenciado de um outro site (está vindo de algum outro site).
$this->agent->browser()
Retorna uma string que contem o nome do navegador que está visitando seu site.
$this->agent->version()
Retorna uma string que contem o número de versão number do navegador que está visitando seu site.
$this->agent->mobile()
Retorna uma string que contem o nome do dispositivo móvel que está visitando seu site.
$this->agent->robot()
Retorna uma string que contem o nome do robô que está visitando seu site.
$this->agent->platform()
Retorna uma string que contem a platforma que está sendo usada para visitar seu site (Linux, Windows, OS X, etc.).
$this->agent->referrer()
O referrer, se o user agent está vindo de algum outro site. Normalmente você usará esta função da seguinte maneira:
if ($this->agent->is_referral())
{
echo $this->agent->referrer();
}
$this->agent->agent_string()
Retorna uma string que contem a identificação completa do user agent . Normalmente algo assim:
Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2
$this->agent->accept_lang()
Permite verficar se o user agent aceita um idioma particular. Exemplo:
if ($this->agent->accept_lang('en'))
{
echo 'Você suporta Inglês!';
}
Nota: Esta função não é muito confiável
isto porque alguns navegadore não provêem infomação de idioma, e os que o fazem, não fornecem a informação de modo preciso.
$this->agent->accept_charset()
Permite verficar se o user agent aceita um conjunto de caracteres (charset) particular. Exemplo:
if ($this->agent->accept_charset('utf-8'))
{
echo 'Seu browser suporta UTF-8!';
}
Nota: Esta função não é muito confiável
isto porque alguns navegadore não provêem infomação de conjunto de caracteres, e os que o fazem, não fornecem a informação de modo preciso.