Revision: 27260
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 31, 2010 20:23 by blpgirl
Initial Code
<?php
//basado en http://www.stylegala.com/articles/no_more_css_hacks.htm y modificado pa detectar mas navegadores y os.
//llama la funcion que detecta todo y se inicializan las variables
$d = detect();
$b = $d['browser'];
$v = $d['version'];
$o = $d['os'];
function detect()
{
//nota: firefox debe ir luego de mozilla pues el user agent tiene ambos
//y flock debe ir luego de mozilla y firefox por la misma razon
//chrome también debe ir despues de mozilla y safari porque los contiene a ambos
//funciona porque siempre queda el valor de la última cadena encontrada
$browser = array ("IE","OPERA","MOZILLA","NETSCAPE","FIREFOX","SAFARI", "FLOCK", "CHROME");
$os = array ("WINDOWS","MAC","IPHONE");
$info['browser'] = "OTHER";
$info['os'] = "OTHER";
$user_agent = $_SERVER['HTTP_USER_AGENT'];
//Por cada valor del array de navegadores
foreach ($browser as $parent)
{
//con strtoupper devuelve la cadena en mayúsculas y con strpos devuelve la posicion de la cadena
//Si no se encuentra la cadena, devuelve FALSE
$s = strpos(strtoupper($user_agent), $parent);
//el user agent siempre suelta: Navegador/NumVersion o Navegador NumVersion pa explorer
//con esto se tiene la posicion para la version que es justo despues del navegador (s + tamaño nombre navegador)
$f = $s + strlen($parent);
//devuelve la cadena que empieza en el caracter f y termina en f+5
$version = substr($_SERVER['HTTP_USER_AGENT'], $f, 5);
//reemplaza el numero, punto o / en la cadena version y lo reemplaza por vacio
$version = preg_replace('/[^0-9,.]/','',$version);
if ($s)
{
//como se encontro el navegador, se asignan los valores
$info['browser'] = $parent;
$info['version'] = $version;
}
}
foreach ($os as $val)
{
//eregi encuentra subcadenas sin diferenciar mayusculas de minusculas
if (eregi($val,strtoupper($_SERVER['HTTP_USER_AGENT']))) $info['os'] = $val;
}
return $info;
}
?>
Initial URL
Initial Description
lo modifique yo, me gustaria agregar linux tambien. Aca hay una clase pa esto http://www.phpclasses.org/browse/package/2827.html
Initial Title
detectar browser
Initial Tags
Initial Language
PHP