lunes, 3 de diciembre de 2007

Detectar navegador con php

//Una manera fácil de ejecutar código dependiendo del navegador usando PHP
//El codigo esta listo para usarse, copia y pega, los comentarios y explicaciones son parte del código.
//Este código es SMILEWARE. Si sonries porque el código funciona, tienes una licencia!
//Primero creamos la variable useragent con el agente que esta usando el usuario para navegar.
$useragent = $_SERVER["HTTP_USER_AGENT"];

//Usamos ahora preg_match para detectar una cadena de texto y compararla con los navegadores
//Internet explorer?
if (preg_match("MSIE ([0-9].[0-9]{1,2})",$useragent,$matched)) {
$browser_version=$matched[1];
$browser = "IE";
}
//Opera?
elseif (preg_match( "Opera ([0-9].[0-9]{1,2})",$useragent,$matched)) {
$browser_version=$matched[1];
$browser = "Opera";
}
//Firefox?
elseif(preg_match("Firefox/([0-9\.]+)",$useragent,$matched)) {
$browser_version=$matched[1];
$browser = "Firefox";
}
//Safari?
elseif(preg_match("Safari/([0-9\.]+)",$useragent,$matched)) {
$browser_version=$matched[1];
$browser = "Safari";
} else {
// No supimos que browser era, asi que le ponemos un nombre
$browser_version = 0;
$browser= "otro";
}

//Esto nos da de resultado dos variables $browser que puede ser "IE,Opera,Firefox,Safari y otro" y $browser_version = X donde X es el numero de versión detectado.

//Ahora un ejemplo de uso. A veces los altos de tablas se afectan entre internet explorer y los demas, en el ejemplo internet explorer necesita un alto de 12pixeles y los demas navegadores de 16, entonces creamos la variable $margen para usar en <td height="<? echo $margen ;?>">


if($browser == "IE"){
$margen = "12";
}
else{
$margen="16";
}