Neste tutorial, vamos mostrar como identificar o navegador de internet que o seu website está sendo acessado.

Infelizmente, a incompatibilidade entre os navegadores ainda é uma realidade. Este método é perfeito para você diferenciar ações que devem ser feitas especificamente para um ou mais navegadores (browsers). Muito útil para desenvolvedores, pois com este método pode-se corrigir problemas que eventualmente aparecem em um determinado browser, fazendo com que o website seja utilizável nos principais navegadores disponíveis.

Existem outros métodos para identificar qual navegador o leitor de um website está utilizando, entretanto o método que apresentaremos  é bastante confiável e muito simples. Veja como utilizá-lo a seguir:

Definição da variável $agent

1) Defina a variável $agent

if(isset($_SERVER['HTTP_USER_AGENT'])){
    $agent = $_SERVER['HTTP_USER_AGENT'];
}

Identificação do navegador

2) Compare o nome com os principais navegadores específicos. (Obs.: Não altere a ordem dos navegadores).

if(strlen(strstr($agent,"Firefox")) > 0 ){   
    $browser = 'Firefox';
}
 
if(strlen(strstr($agent,"Safari")) > 0 ){   
    $browser = 'Safari';
}
  
if(strlen(strstr($agent,"MSIE")) > 0 ){   
    $browser = 'Internet Explorer';
}
 
if(strlen(strstr($agent,"Chrome")) > 0 ) {   
    $browser = 'Chrome';
}
 
if(strlen(strstr($agent,"OPR")) > 0 ){   
    $browser = 'Opera';
}
  
if(strlen(strstr($agent,"Edge")) > 0 ){   
    $browser = 'Edge';
}

Exemplo prático

<?php

if(isset($_SERVER['HTTP_USER_AGENT'])){
    $agent = $_SERVER['HTTP_USER_AGENT'];
}
  
echo $agent.'<br/>';

$browser = "Navegador desconhecido";  
  
if(strlen(strstr($agent,"Firefox")) > 0 ){   
    $browser = 'Firefox';
}
  
if(strlen(strstr($agent,"Safari")) > 0 ){   
    $browser = 'Safari';
}
  
if(strlen(strstr($agent,"MSIE")) > 0 ){   
    $browser = 'Internet Explorer';
}
 
if(strlen(strstr($agent,"Chrome")) > 0 ) {   
    $browser = 'Chrome';
}
 
if(strlen(strstr($agent,"OPR")) > 0 ){   
    $browser = 'Opera';
}
  
if(strlen(strstr($agent,"Edge")) > 0 ){   
    $browser = 'Edge';
}
  
echo '<h1>Meu navegador é: '.$browser.'<br/>';

?>

 Teste o código no link: http://phpfiddle.org/lite/code/sgsm-chpk. Clique no botão [Run] para ver o resultado. Teste em vários navegadores para verificar o resultado. Na imagem abaixo, mostramos o resultado em um navegador Chrome.

Colocando ações específicas para um determinado navegador

1) Depois de definido o navegador utilizado pelo usuário ($browser), você poderá determinar as ações específicas para cada tipo de navegador que você queira corrigir. Você pode colocar estas expressões em qualquer parte da página.

if ($browser == "navegador a ser corrigido") {

// COLOQUE AQUI AS AÇÕES EXCLUSIVAS PARA ESTE NAVEGADOR

}

  Dica: Redirecionando o site para uma página específica para um determinado navegador

2) Você poderá utilizar a identificação do dispositivo como um método de redirecionamento para uma página específica para quem utiliza o navegador que você queira corrigir.

if ($browser == "navegador a ser corrigido") {

header("Location: http://www.domínio/navegador");

}

Explicando o código do exemplo

1. A variável $_SERVER['HTTP_USER_AGENT'] é uma string que denota o agente de usuário pelo qual a página é acessada.

if(isset($_SERVER['HTTP_USER_AGENT'])){
    $agent = $_SERVER['HTTP_USER_AGENT'];
}

echo $agent.'<br/>';

Para maior entendimento do código, acesse o site: phpfiddle.org. Digite o código acima e clique no botão [Run - F9]. Veja o resultado abaixo, onde utilizamos um desktop com Windows 10 e navegador Mozzila Firefox:

2. Define-se o valor inicial da variável $browser, como sendo:

$browser = "Navegador desconhecido";  

 3. A expressão a seguir verifica se foi encontrado a palavra "Firefox" no valor da variável $agent.

if(strlen(strstr($agent,"Firefox")) > 0 ){   
    $browser = 'Firefox';
}

A função strstr($agent,"Firefox") procura a primeira ocorrência da string "Firefox" na variável $agent.

A função strlen() conta o número de caracteres da função strstr($agent,"Firefox"). Se encontrado a palavra procurada, a função retornará o valor 7, ou seja maior que 0. Se a string não for encontrada, retornará o valor zero, tornando a expressão condicional falsa.

Se a expressão condicional for verdadeira, a variável $browser será igual a string "Firefox". Caso contrário, segue-se para a próxima expressão, até encontrar um navegador que satisfaça a condição especificada.

Se nenhum navegador satisfazer as condicionais especificadas, a variável assumirá a sua condição inicial, ou seja, $browser = "Navegador desconhecido".


-----------------------------------

Acrescentando outros navegadores no código

1. Você poderá acrescentar outros navegadores no código. A seguir, acesse a lista completa de "User Agent Strings" para todos os navegadores disponíveis no mercado: http://www.useragentstring.com/pages/useragentstring.php

 Atenção: Cuidado na hora de você definir a sequência de condicionais, pois alguns "User Agent Strings" possuem a descrição de vários navegadores. Veja alguns exemplos:

Chrome

 Edge

 Opera

JSN Epic Template designed by JoomlaShine.com