Cómo obtener un agente de usuario en PHP

78

Estoy usando este código JS para saber qué navegador está usando el usuario.

<script>
  document.write(navigator.appName);
</script>

Y quiero obtener este navigator.appName en el código php para usarlo así:

if ($appName == "Internet Explorer") {
  // blabla
}

¿Cómo puedo hacerlo?

Olga Budnik
fuente

Respuestas:

209

En su lugar, utilice la $_SERVER['HTTP_USER_AGENT']variable PHP nativa .

noli
fuente
11
¡Presta atención, esto no se puede configurar!
Thomas Decaux
10
En PHP7 +, puede escribir $_SERVER['HTTP_USER_AGENT']??nullpara que devuelva nulo en lugar de lanzar un error cuando no está definido
Brian Leishman
O haga esto, si solo desea realizar manipulaciones de cadenas más adelante y no desea preocuparse por el valor nulo o no establecido: $ ua = $ _SERVER ['HTTP_USER_AGENT']. '';
user2078023
22
O simplemente verifique con isset()... El código limpio y legible siempre debe ser una alta prioridad.
StanE
4

También puede usar la función nativa php get_browser ()

NOTA IMPORTANTE: debe tener un archivo browscap.ini.

Aurovrata
fuente
3
Esto requiere que tenga una puesta al día browscap.ini archivo
nulabilidad
1
lo hace y hay bastantes recursos en línea donde puede descargar uno para su sitio, como browscap.org
Aurovrata
1
return null o false
Fernando Torres
2
asegúrese de tener un archivo
browscap.ini
2

Puede usar el enlace del método jQuery ajax si desea pasar datos del cliente al servidor. En este caso, puede utilizar la $_SERVER['HTTP_USER_AGENT']variable para encontrar el agente de usuario del navegador.

Arthur86
fuente
1
¿esto está funcionando $_SERVER['USER_AGENT']? ¿Debería ser $_SERVER['HTTP_USER_AGENT']???
jogesh_pi