Web Louca

Home Artigos Detectar Browser com PHP

Detectar Browser com PHP

Detectar browser php

Quantas vezes já não tive que aplicar código css só a um browser, ou quantas vezes por algum motivo quis que determinada mensagem só aparece-se aos utilizadores que utilizavam o Browser Opera (por exemplo)? Mas sabia que é possivel detectar Browser com PHP?

 

Optimizar o código do seu website para que trabalhe com os mais variados browsers é extremamente importante. Para aqueles que desenvolvem websites, sabem das dores de cabeça que pode dar desenvolver para o IE6 e 7.


Deixo em abaixo o exemplo das stats do último mês de um website recente meu. Para que você tenha noção da praga que o IE ainda é em certos nichos e a importância de saber "artimanhas" como a que vai ver mais abaixo.

 

browserall
 
browser ie

 

 

Detectar Browser com PHP é extremamente facil. Aplique o seguinte codigo php onde quer que lhe apareça conteúdo destinado unicamente a um determinado browser. Muito útil para o load de Scripts ou Css.

  1. <?php  
  2.  
  3. $browser_cliente = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';  
  4. if(strpos($browser_cliente, 'Opera') !== false)  
  5. {  
  6.    echo 'codigo para o Opera';  
  7. }  
  8. elseif(strpos($browser_cliente, 'Gecko') !== false)  
  9. {  
  10.    echo 'codigo para o Mozilla/Firefox e browsers baseados no motor Gecko';  
  11. }  
  12. elseif(strpos($browser_cliente, 'MSIE') !== false)  
  13. {  
  14.    echo 'codigo para o IE';  
  15. }  
  16. else  
  17. {  
  18.    echo 'codigo para outro browser';  
  19. }  
  20.  
  21. ?>

 

É possível aplicar o código anterior, unicamente a um browser. Por exemplo se quiser aplicar unicamente ao IE faça:

  1. <?php  
  2.  
  3. $browser_cliente = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';  
  4. if(strpos($browser_cliente, 'MSIE') !== false)  
  5. {  
  6.    echo 'codigo para o IE';  

  7. ?>

 

No caso do IE se quiser ser ainda mais minucioso, pode utilizar comentários condicionais que só são interpretados pelo IE a correr em Windows. Isto é útil quando se pretende diferenciar código (ex: css) que vai correr no IE6 e código que irá correr no IE7+. O código php ficaria algo do género.

  1. <?php  
  2.  
  3. $browser_cliente = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';  
  4. if(strpos($browser_cliente, 'MSIE') !== false)  
  5. {  
  6.    echo '
    <!--[if lte IE 6]>
    Codigo para IE6 ou menor!
    <![endif]-->

    <!--[if gte IE 7]>
    Codigo para IE7 ou maior!
    <![endif]-->
    ';  

  7. ?>

Trackback(0)
agradecida
Abril 15, 2009

muito bom cara!

Gabriel Lau
Setembro 02, 2009

Bacana o seu post. Mas se eu quiser saber com o php qual a versão que o browser do cara está usando (nesse caso para o IE), para poder aplicar o mesmo recurso que o youtube e/ou o orkut andam fazendo?

Queria saber isso para poder bloquear todo o conteúdo de ser exibido para o caso de ser um IE6 da vida.

Carlos
Outubro 02, 2009

Boas,

E o inverso? podemos definir de alguma maneira que numa rede de comp**adores, quem de fora fizer "HTTP_USER_AGENT" dé sempre o mesmo browser ID, independemente do comp**ador e do browser da rede?.

PS: Pergunta de maçarico

Cláudia Luísa
Fevereiro 04, 2010

VALEU PELA AJUDA!!!!!

Pedro Marques
Fevereiro 16, 2010

Muito bom post.
Obrigado pela info.

Buzatto
Julho 23, 2010

Agradeço muito!

Tive muita dor de cabeça por causa do CSS no IE.

OBS: Existem dois tipos de navegadores, em relação a interpretação de codigos CSS:

O IE ...
e os outros =)

Guilherme
Dezembro 17, 2010

Muito bom! Ajudou pra caramba! Assim como a maioria, estava sofrendo demais com o CSS no IE e no FF... Agora resolveu tudo (: Dois arquivos CSS diferentes, uma pra cada browser e nenhuma dor de cabeça ;) valeu!!

Renê Dettenborn
Abril 29, 2011

Excelente!!

Mateus
Maio 06, 2011

Cara muito bom esse Tuto.... Ajudou muito, como ainda não consegui resolver o problema do css com IE, estou meio que bloqueando os usuários deste browser, pois ainda estou em fase de desenvolvimento, assim que terminar vou direcionar para css's diferentes... Muito obrigado...


Escreva o seu Comentario
 
  pequeno | maior
 

busy
Subscreve a newsletter gratuita e começa hoje mesmo a criar websites e a ganhar dinheiro na internet!


jsimageNeste artigo vou-lhe demonstrar como rodar imagens e qualquer elemento desde div a span co...
phpthumbAtualmente praticamente todos os websites possuem a necessidade de listar os seus artigos...
benchmarksA pouco mais de um ano falei sobre uma ferramenta para otimizar imagens (Artigos/optimize...
phpimageredRedimensionar uma imagem com php pode ser um processo complicado. Quando por exemplo um wo...
linksafiliadosNo inicio do ano escrevi um artigo onde dáva a conhecer uma forma de criar links de afili...