PHP saber que Browser se usa?

ElRuso

La verdad es que nesesito un codico que funcciona con copy & paste. Si tendria la oportunidad de testear lo que escribo paso a paso no lo pederia.

Lo que nesisto es algo muy simple, dependiendo del tipo de browser escribir texto diferent, algo asi:


<?php

If (browser==Firefox) {
	echo "bla bla";
}elseif (browser==IE) {
	echo "no bla no bla";
} elseif (browser==Chrome) {
	echo "no bla no bla";
} else { echo "khmmm?"; 
}

?>

Gracias de antemano...

txandy

supongo que con esta función podrás sacar lo que quieres...

http://www.webintenta.com/detectar-el-navegador-con-php.html

con esa funcion te saca el explorador que tienes, pues a partir de hay los if

if (ObtenerNavegador($_SERVER['HTTP_USER_AGENT']) == Opera)
{
echo "tarari que te vi";
}

EDITO: Pensado mejor, editas lo que te devuelve la función por lo que quieres poner y ya esta ;), es decir si la función te devuelve, Opera, pues cambias eso por la frase que quieres utilizar :)

1
ElRuso

Gracias #2

Basandos en link que me pusiste tengo ese codigo.

<?php

if (ObtenerNavegador($_SERVER['HTTP_USER_AGENT']) == 'Mozilla Firefox'){
	echo "Mozilla";
}elseif  (ObtenerNavegador($_SERVER['HTTP_USER_AGENT']) == 'Lynx') {
	echo "Pro";
}elseif (ObtenerNavegador($_SERVER['HTTP_USER_AGENT']) == 'Internet Explorer') {
	echo "IE";
} else {
	echo "khmmm";
}

function ObtenerNavegador($user_agent) {
     $navegadores = array(
          'Opera' => 'Opera',
          'Mozilla Firefox'=> '(Firebird)|(Firefox)',
          'Mozilla'=>'Gecko',
          'Lynx' => 'Lynx',
          'Konqueror'=>'Konqueror',
          'Internet Explorer' => '(MSIE)',
          'Internet Explorer 6' => '(MSIE 6\.[0-9]+)',
);
foreach($navegadores as $navegador=>$pattern){
       if (eregi($pattern, $user_agent))
       return $navegador;
    }
return 'Desconocido';
}

?>

Como menciono en #1 no tengo servidor web que soporta PHP a mano, me puede alguien testear ese codigo, que no da ningun error, porfa...?

suaveSHOW

Me parece un poco ridiculo, para que quieres un codigo php si no tienes donde usarlo.
Usa el localhost.

ElRuso

#4 Te puede parecer lo que quieres. Yo pregunto por ayuda simplemente en un foro. Gracias por ayudar chavalin.

ElRuso

Ok funciona bien. Podeis cerar esto.

txandy

bueno sería algo mucho más sencillo, te lo pego aquí, yo lo acabo de probar ahora que he tenido un rato y funciona.

<?php
function ObtenerNavegador($user_agent) {
     $navegadores = array(
          'Texto si usa OPERA' => 'Opera',
          'Texto si usa Firefox'=> '(Firebird)|(Firefox)',
          'Texto si usa Galeon' => 'Galeon',
          'Texto si usa Mozilla'=>'Gecko',
          'Texto si usa MyIE'=>'MyIE',
          'Texto si usa Lynx' => 'Lynx',
          'Texto si usa Netscape' => '(Mozilla/4\.75)|(Netscape6)|(Mozilla/4\.08)|(Mozilla/4\.5)|(Mozilla/4\.6)|(Mozilla/4\.79)',
          'Texto si usa Konqueror'=>'Konqueror',
          'Texto si usa Internet Explorer 7' => '(MSIE 7\.[0-9]+)',
          'Texto si usa Internet Explorer 6' => '(MSIE 6\.[0-9]+)',
          'Texto si usa Internet Explorer 5' => '(MSIE 5\.[0-9]+)',
          'Texto si usa Internet Explorer 4' => '(MSIE 4\.[0-9]+)',
);
foreach($navegadores as $navegador=>$pattern){
       if (eregi($pattern, $user_agent))
       return $navegador;
    }
return 'Texto si no es ninguno de los anteriores';
}
?>

<?php echo ObtenerNavegador($_SERVER['HTTP_USER_AGENT']) ?>  

EDITO: Veo que llego tarde, pero si metes la info en un array para mostrarla no cal luego llamar a la funcion y comprobar si es ese navegador, es decir como te he puesto ahora esta mucho mejor optimizado que con los if, porque lo que haces con los if, ifelse, etc es hacer 2 veces lo mismo, comprobar que explorador esta usando y cuando lo tienes otra vez a comprobar si es ese explorador ;)

1
ElRuso

Gracias otra vez txandy. Se ve mucho mas limpio tu codigo. :)

Usuarios habituales

  • ElRuso
  • txandy
  • suaveSHOW