17

Ago

Detectar Browser com PHP

Escrito por Gonçalo Martins   
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.

php
  1. <?php    $browser_cliente = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
  2.  if(strpos($browser_cliente, 'Opera') !== false)  {      echo 'codigo para o Opera';
  3.  }  elseif(strpos($browser_cliente, 'Gecko') !== false)  {      echo 'codigo para o Mozilla/Firefox e browsers baseados no motor Gecko';
  4.  }  elseif(strpos($browser_cliente, 'MSIE') !== false)  {      echo 'codigo para o IE';
  5.  }  else  {      echo 'codigo para outro browser';
  6.  }    ?>

 

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

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

 

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.

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


Gostou deste Artigo?
Subscreva o feed RSS ou reguiste-se na Newsletter do WebLouca, agora!
Categoria:
Se preferir, pode ainda deixar um comentário

PATROCINADORES


cometarios
Trackback(0)
agradecida
Abril 15, 2009

muito bom cara!

Gabriel Lau
Setembro 02, 2009
http://okatsura.com

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
http://www.acdd.pt

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 =)


Escreva o seu Comentario
 
  pequeno | maior
 

busy
 

Patrocinadores do Site

Subscrever Feed



Artigos

Ultimos artigos
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...