lunes, 16 de noviembre de 2009

Como Obtener El Navegador Web y La Versión usando PHP

Es clasico toparse con problemas de diseño en web, especificamente con internet explorer 6 por lo que a continuación les recomiendo usar dos funciones, la primera es para obtener el nombre del navegador web desde el que se accede y la otra es para obtener la version de este, estas funciones son muy útiles a la hora de diferenciar contenidos debido al renderizado de cada cliente web.

-Función para obtener el nombre del navegador:


function get_user_browser()
{
$u_agent = $_SERVER['HTTP_USER_AGENT'];
$ub = '';
if(preg_match('/MSIE/i',$u_agent))
{
$ub = "ie";
}
elseif(preg_match('/Firefox/i',$u_agent))
{
$ub = "firefox";
}
elseif(preg_match('/Safari/i',$u_agent))
{
$ub = "safari";
}
elseif(preg_match('/Chrome/i',$u_agent))
{
$ub = "chrome";
}
elseif(preg_match('/Flock/i',$u_agent))
{
$ub = "flock";
}
elseif(preg_match('/Opera/i',$u_agent))
{
$ub = "opera";
}

return $ub;
}


-Función para obtener la versión del navegador:


function gbversion()
{
$Name="";
$Version="";
$browsers = array("firefox", "msie", "opera", "chrome", "safari",
"mozilla", "seamonkey", "konqueror", "netscape",
"gecko", "navigator", "mosaic", "lynx", "amaya",
"omniweb", "avant", "camino", "flock", "aol");
$Agent = strtolower($_SERVER['HTTP_USER_AGENT']);
foreach($browsers as $browser)
{
if (preg_match("#($browser)[/ ]?([0-9.]*)#", $Agent, $match))
{
$Name = $match[1] ;
$Version = $match[2] ;
break ;
}
}
return $Version;
}


-Como en mi caso el problema solo se daba cuando usaba internet explorer 6 use el siguiente codigo:


if(get_user_browser()=="ie" && gbversion()=="6.0")
{
echo "hacer ie6";
}
else
{
echo "hacer otro";
}