Foros del Web » Programando para Internet » PHP »

Http_user_agent dudas.

Estas en el tema de Http_user_agent dudas. en el foro de PHP en Foros del Web. Antes que nada un abrazo a todos, hace mucho tiempo que no entraba xD Este script lo he encontrado por ahi y está muy bien ...
  #1 (permalink)  
Antiguo 19/04/2008, 12:04
Avatar de WyLY  
Fecha de Ingreso: enero-2002
Ubicación: Cancun, México.
Mensajes: 506
Antigüedad: 22 años, 3 meses
Puntos: 6
Http_user_agent dudas.

Antes que nada un abrazo a todos, hace mucho tiempo que no entraba xD

Este script lo he encontrado por ahi y está muy bien , crea el array, luego busca la coincidencia y arroja el resultado.

Mi duda se crea en algunas cositas (tal vez absurdas, pero estoy oxidado)

Código PHP:
function ObtenerNavegador($user_agent) {
     
$navegadores = array(
          
'Opera' => 'Opera',
          
'Mozilla Firefox'=> '(Firebird)|(Firefox)',
          
'Galeon' => 'Galeon',
          
'Mozilla'=>'Gecko',
          
'MyIE'=>'MyIE',
          
'Lynx' => 'Lynx',
          
'Netscape' => '(Mozilla/4\.75)|(Netscape6)|(Mozilla/4\.08)|(Mozilla/4\.5)|(Mozilla/4\.6)|(Mozilla/4\.79)',
          
'Konqueror'=>'Konqueror',
          
'Internet Explorer 7' => '(MSIE 7\.[0-9]+)',
          
'Internet Explorer 6' => '(MSIE 6\.[0-9]+)',
          
'Internet Explorer 5' => '(MSIE 5\.[0-9]+)',
          
'Internet Explorer 4' => '(MSIE 4\.[0-9]+)',
);
foreach(
$navegadores as $navegador=>$pattern){
       if (
eregi($pattern$user_agent))
       return 
$navegador;
    }
return 
'Desconocido';
}
echo 
ObtenerNavegador($_SERVER['HTTP_USER_AGENT']); 
Al hacer el function utiliza ($user_agent) // Esto para qué?, es en base al HTTP_USER_AGENT?
luego hace un foreach para declarar $navegadores as $navegador=>$pattern
Tambien no logr comprender bien como se ejecuta.

las sentencias mas o menos las tengo claras lo que no me queda claro es el manejo, en que consiste el uso de ellas, de nuevo gracias y un abrazo.
__________________
I do techy stuff for a living and practice MMA with my dog... He always wins.
  #2 (permalink)  
Antiguo 19/04/2008, 15:54
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Http_user_agent dudas.

Primero que nada, lo que se ejecuta es

Código PHP:
echo ObtenerNavegador($_SERVER['HTTP_USER_AGENT']); 
O sea, llamar a la función con la información de $_SERVER['HTTP_USER_AGENT'] como parámetro.

Declara una matriz en la que cada elemento tiene esta forma:

elemento[ 'nombre_navegador'] = 'patron para identificarlo'

Si ves la página de foreach entenderás para qué lo usa.

Y luego simplemente compara la cadena pasada con el patrón que definió antes, y si coincide devuelve el nombre del navegador.


Saludos.
  #3 (permalink)  
Antiguo 19/04/2008, 21:07
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Re: Http_user_agent dudas.

WyLY:
Este procedimiento hace exactamente lo mismo y es mas flexible para agregar otros agentes y mas practico.
1.- Creas un archivo de texto de nombre agente.txt con el wordpad.
2.- Dentro escribes asi:
Opera
(Firebird)|(Firefox)
Galeon
Gecko
MyIE
Lynx
(Mozilla/4\.75)|(Netscape6)|(Mozilla/4\.08)|(Mozilla/4\.5)|(Mozilla/4\.6)|(Mozilla/4\.79)
Konqueror
(MSIE 7\.[0-9]+)
(MSIE 6\.[0-9]+)
(MSIE 5\.[0-9]+)
(MSIE 4\.[0-9]+)
3.- este seria el codigo que hace exactamente
lo mismo que el otro pero con mucho mas flexibilidad
para añadir dentro del archivo de texto mas y mas
agentes.

$agente = getenv('HTTP_USER_AGENT');
$misagentes = file("agente.txt");
$cantidadagentes = count($misagentes);
for($x=0; $x < $cantidadagentes; $x++) {
if($agente == $misagentes[$x]) {
Enviar al navegador...(salir)
}
}
Enviar al Desconocido...(final)

Saludos
Y espero nos ayude a todos
Franco
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 08:39.