Detectar el Browser con PHP

via unijimpe by unijimpe on 4/2/10


http://feedads.g.doubleclick.net/~ah/f/saquc5rheq5j62tmf21tobbi68/468/60#http%3A%2F%2Fblog.unijimpe.net%2Fdetectar-el-browser-con-php%2F

Detectar el navegador o browser que esta utilizando el visitante a una web resulta ser útil para ofrecer contendido de acuerdo al dispositivo que usa el usuario. Si el usuario esta utilizando un Navegador antiguo se le puede sugerir actualizarlo, otro uso podría ser una hoja de estilos de acuerdo al navegador del visitante.

Browser Detect

Browser Detect es una clase escrita en PHP que permite detectar rápidamente el navegador del usuario, para ello utiliza el User-Agent que es enviado mediante los headers.

Para utilizar esta clase, lo primero es incluir el archivo browser_class_inc.php y crear una instancia de la clase browser.

  1. include(‘browser_class_inc.php’);
  2. $br = new browser();

 

Luego de ello podremos utilizar los siguientes métodos:

  • getBrowserOS: devuelve el sistema operativo (Windows, Linux, Macintosh, OS/2, BeOS).
  • whatBrowser: devuelve un array con el tipo de browser, el sistema operativo y la versión.
  • isOpera: devuelve verdadero si el browser del usuario es Opera.-
  • isFirefox: devuelve verdadero si se accede con Firefox.
  • isKonqueror: devuelve verdadero si se utiliza Konqueror.
  • isMSIE: devuelve verdadero si usamos Internet Explorer.
  • isGaleon: devuelve verdadero para quienes utilizan Galeon.
  • isWebTV: verdadero para visitantes con WebTV.
  • isMSPIE: verdadero si se accede desde Internet Explorer de Pocket PC.
  • isOmniWeb: devuelve verdadero si se usa OmniWeb.
  • isPhoenix: para verificar si se utiliza Phoenix.
  • isFirebird: comprueba si se accede desde Firebird.
  • isLynx: verdadero para usuarios con Lynx.
  • isSafari: comprueba si se accede con Safari.
  • isNetscape: verdadero para usuarios de Netscape.

Entonces, podemos imprimir los datos del navegador del cliente con el siguiente código:

  1. include(‘browser_class_inc.php’);
  2. $br = new browser();
  3. print_r($br->whatBrowser());

 

El cual podemos ver funcionado en browser-class/demo.php. Este devolverá un resultado de la siguiente forma:

  1. (
  2.     [browsertype] => Firefox
  3.     [version] => 3.5.9 GTB6
  4.     [platform] => Macintosh
  5.     [AOL] =>
  6. )

 

Ejemplo Práctico

Todos los navegadores interpretan las hojas de estilos de forma diferente por lo cual crear un CSS que se muestre igual en todos los navegadores es complicado, se puede utilizar Hacks CSS pero estos hacen que no las hojas de estilos sean invalidas. Entonces una solución es enviar un CSS diferente por cada Browser. En la práctica se puede hacer dos archivos uno para Internet Explorer (el mas problemático) y otro para los demás navegadores.

  1. <?php
  2. include(‘browser_class_inc.php’);
  3. $br = new browser();
  4. ?>
  5.   <title>CSS Demo</title>
  6.   <?php if ($br->isMSIE()) { ?>
  7.   <link href=“css/styles-ie.css” rel=“stylesheet” type=“text/css”>
  8.   <?php } else { ?>
  9.   <link href=“css/styles.css” rel=“stylesheet” type=“text/css”>
  10.   <?php } ?>
  11. </head>

 

Sencillo de implementar y nos ahorrará tiempo en la detección del browser del cliente. Finalmente les dejo el archivo con el código fuente del ejemplo de este post.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: