Identificar um navegador não é uma tarefa 100% segura, pois, em alguns casos pode-se configurar o navegador para que não seja identificada a versão entre outras informações, outro fator é o firewall que pode bloquear estas informações.
Dentre os diversos navegadores existentes temos outro fator que poderia impedir a identificação correta do navegador, este fator é conhecido como atualização de versão. Sim, sempre que um software é atualizado algumas informações podem ser trocadas, até mesmo configurações.
Enfim, identificar um navegador não é uma ação segura.
Ao contrario do que muita gente pensa é possível identificar o navegador do usuário utilizando apenas PHP, veja como isso pode ser realizado.
Muitos [bp]programadores[/bp] conhecem a variável de servidor $_SERVER que é um array contendo informações sobre o servidor e a conexão com o mesmo, porém poucos a usam ao ponto de facilitar o desenvolvimento de seus sistemas e sites.
Dentre as informações contidas em $_SERVER temos HTTP_USER_AGENT que informa o conteúdo do header User-Agent. O retorno desta função pode ser algo como o exemplo abaixo:
Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.1.5) Gecko/20070713 Firefox/2.0.0.5
A partir desta informação já é possível saber qual é o navegador do usuário e escolher qual o estilo ou pagina ele deve ser redirecionado, mas, caso você queira melhorar a verificação para saber se o navegador é compatível com seu site, você pode utilizar a função get_browser() que tenta retornar as funções [bp]disponíveis pelo navegador[/bp].
Você pode utilizá-la da seguinte forma
// Informa ao get_browser() qual o header User-Agent a ser analisado
$browser = get_browser($_SERVER['HTTP_USER_AGENT']);// Faz um loop para percorrer os índices do array
foreach ($browser as $name => $value) {// Imprime os valores
echo “$name $value
n”;
}
?>
O exemplo anterior retornará algo similar a isto:
browser_name_regex ^mozilla/5.0 (windows; .; windows nt 5.1; .*; rv:1.8.*) gecko/.*$
browser_name_pattern Mozilla/5.0 (Windows; ?; Windows NT 5.1; *; rv:1.8*) Gecko/*
parent Mozilla 1.8
platform WinXP
browser Mozilla
version 1.8
majorver 1
minorver 8
css 2
frames 1
iframes 1
tables 1
cookies 1
backgroundsounds
vbscript
javascript 1
javaapplets 1
activexcontrols
cdf
aol
beta 1
win16
crawler
stripper
wap
netclr
Maiores informações sobre estas funções
Variáveis pré definidas
get_browser()
Termos relacionados:
- verificar navegador PHP
- navegador php
- php navegador
- identificar browser php
- php verificar navegador
- identificar navegador php
- identificar navegador
- obter nome do navegador com php
- php identificar navegador
- descobrir navegador php
Este post foi útil? Retribua clicando no botão






é só ñ vi essa função funcionar!
Warning: get_browser() [function.get-browser]: browscap ini directive not set in /hom.br/brow.php on line 2
Warning: Invalid argument supplied for foreach() in /hjhj.com.br/brow.php on line 3
@ CÉZAR
A função está desabilitada no teu server, você precisa ativar a diretiva no php ini para ela funcionar, Veja no manual do PHP http://php.net/get_browser
Falopa!
Opaa
kara… muito bonito e simples!
PENA QUE NÃO FUNCIONA!!
@ CBT
Seria muito interessante aprender o que é HTML e o que é PH, pra somente depois dizer que não funciona.
Falopa!
meu amigo, realmente não funciona, perdi meu tempo testando e nada,, ao invés de vc ficar estressado deveria tirar este código ou arruma-lo para outras pessoas como eu não vir aqui perder o tempo tbm, ok?
@ CARLOS BRITTO
@ TODOS
Por favor leia o manual da função http://br2.php.net/manual/pt_BR/function.get-browser.php
Que tipo de idiota eu seria para publicar algo que não funciona?
Falopa!
Galera funfa sim e muito bem!!
Aprenda primeiro o que é PHP antes de falar que não funcionar!
Funcionar certinho
Encontre no seu php.ini a linha
;browscap = extra/browscap.ini
tire o ponto e virgula, e restarte o apache, é mais facil q vcs ficarem brigando
o que o @rudimar colocou e quase isso,
faltando arrumar o diretorio ai, usando o Wamp 2.2 talvez esteja dando um erro Cannot open’extra/browscap.ini’ for reading
faça o seguinte altere assim
browscap = ../../php/php5.3.8/extra/browscap.ini
claro que terá q baixar o arquivo browscap.ini pra php
ai o link
http://browsers.garykeith.com/stream.asp?PHP_BrowsCapINI
dentro da pasta php5.3.8 crie a pasta extra e jogue esse arquivo la sem o php_
inicial
pronto ai e so
$browser = get_browser();
foreach ($browser as $name => $value)
{
echo “$name $value \n”;
}
nao precisar usar o $_SERVER dentro do metodo get_browser()
espero que ajude, acho q ao inves de so falar q nao funciona, ou falar q funciona, mas nao mostrar como solucionar nao e a solução, braçaooo
@ BRADOCK
Obrigado por compartilhar a informação. Realmente é uma diretiva comentada e atualmente não é habilitada por padrão. Enfim, na época que o post foi escrito get_browser() atuava em PHP 4 e era necessário informar o user agent, como no exemplo do post, atualmente não é mais mesmo assim o PHP.net continua informando esta mudança veja a nota http://br.php.net/get_browser
Falopa!
@john foi malz ai cara, nem vi a data do post, vacilei, malz mesmo
d qualquer forma pode ser q ajude alguem
falopa pro c tbem hehe
poww @John aproveitando a deixa vc sabe solucionar isto?
dando um
var_dum(get_browser())
na lista q e exibida, gostaria de pegar o value somente desta linha
browser: Netscape
consegue ??
grato desde já
@ BRADOCK
$userAgent = get_browser( null, true );$userAgent['browser'];
http://br.php.net/get_browser
Falopa!