La idea está buena, una solución simple al problema
Solo tengo un par de comentarios que hacer:
1.- cuidado con el orden :)
Parte de la identificación de Konqueror es "KHTML (like Gecko)", por lo que según este programa, Konqueror sería identificado como Mozilla
2.- Si la función se usa tal cual está, el vector de navegadores se crea cada vez que se llama a la función. La solución para ganar unos milisegundos es crear el vector fuera de la función y luego hacerlo disponible con
global, o declarar la variable como
static y en cada ejecución de la función ver si ya tiene su valor o no. La más rápida es la primera opción, pero seguro que a los puristas del diseño de software no les gusta nada, ellos odian las variables globales
3.- Para ahorrar código y mejorar la claridad, propongo cambiar los if por:
Código PHP:
<?php
$navegador = ObtenerNavegador($_SERVER['HTTP_USER_AGENT']);
switch($navegador) {
case 'Internet Explorer 6': $css = 'ie6'; break;
case 'Internet Explorer 7': $css = 'ie7'; break;
case 'Operai' : $css = 'opera'; break;
case 'Safari': $css = 'safari'; break;
default: $css = 'estilos';
}
?><link rel="stylesheet" media="screen" type="text/css" href="<?php echo $css; ?>.css" />
incluso podría darse nombres más 'de archivo' al valor devuelto por la función, y luego (aunque se pierda un poco de libertad en la elección del nombre de la hoja de estilos), hacer
Código PHP:
<link rel="stylesheet" media="screen" type="text/css" href="<?php echo $navegador; ?>.css" />
Si quieren, llámenme "the masta of da milisécon"
Un puntito arriba para el "pana"
metacortex por el aporte
Saludos.