Foros del Web » Programando para Internet » PHP »

Problema al detectar chrome y safari

Estas en el tema de Problema al detectar chrome y safari en el foro de PHP en Foros del Web. Hola. Al detectar el navegador, cuando es safari me devuelve esto: Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari /531.21.10 ...
  #1 (permalink)  
Antiguo 24/07/2012, 00:53
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años
Puntos: 6
Problema al detectar chrome y safari

Hola. Al detectar el navegador, cuando es safari me devuelve esto:

Mozilla/5.0 (Windows; U; Windows NT 6.1; es-ES) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10

Y con Chrome esto:

Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11

Tengo esta funcion:

Código PHP:
Ver original
  1. function obtiene_navegador()
  2. {
  3.     $navegadores = array(
  4.         'Safari' => 'Safari',
  5.         'Google Chrome'=> 'Chrome',
  6.         );
  7.  
  8.     foreach($navegadores as $navegador=>$pattern)
  9.     {
  10.         if (preg_match("<\b".$pattern."\b>", $_SERVER['HTTP_USER_AGENT']))
  11.             return $navegador;
  12.     }
  13.  
  14.     return 'Desconocido';
  15. }

En los dos casos, me devuelve que el navegador es safari.

Cuando es Safari, solo esta la palabra safari, pero cuando es chrome, devuelve las dos palabras, tanto safari como chrome, creo que por ahí viene el error.

Creo que la solucion podria ser que al crear el array, decir que si encuentra las palabras safari y chrome, que devuelve chrome y si solo encuenta safari, que devuelva safari, pero no se como hacer esto.

¿Me podeis ayudar?

Gracias. Un saludo.
  #2 (permalink)  
Antiguo 24/07/2012, 04:41
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Problema al detectar chrome y safari

Si quieres utilizar esto para ver asuntos de compatibilidad de aplicación con el navegador te recomiendo reemplaces para los dos por "AppleWebKit" te aseguro que las aplicaciones te funcionarán de la misma manera =)

en caso en que quieras utilizar el nombre del browser para algo mejor espera la siguiente respuesta xD!

saludos...
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #3 (permalink)  
Antiguo 24/07/2012, 14:14
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años
Puntos: 6
Respuesta: Problema al detectar chrome y safari

Pues tambien es verdad. Gracias
  #4 (permalink)  
Antiguo 24/07/2012, 14:21
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Problema al detectar chrome y safari

Aquí puedes ver un ejemplo más completo de lo que intentas hacer pero no es 100% confiable:

http://www.php.net/manual/es/functio...ser.php#101125

En el caso de mi navegador lo detecta correctamente:

Cita:
Your browser: Google Chrome 20.0.1132.57 on windows reports:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11
Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 24/07/2012, 16:42
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema al detectar chrome y safari

Un problema muy difícil de solventar al detectar el navegador es que ahora los navegadores te permiten elegir los datos que se enviarán en la petición, de forma que, por ejemplo, Firefox dispone de una extensión para "disfrazarse" hasta del %&·// iExplorer.

Ahora, para crear un patrón adecuado, éste debe ser expresión regular PCRE, no se trata simplemente de escribir el nombre y listo, por ejemplo:

'Chrome' => '/Chrome/',

Para más info sobre expresiones regulares, visita: http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: chrome, html, safari
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:32.