Pregunta

Cómo determinar el navegador del usuario con PHP?

Así que si el navegador del usuario es entonces el IE de alerta $ variable = "onbeforeunload" y si no es IE, por ejemplo Firefox (más) entonces $ alerta = "proceso de carga.

Ayuda es muy apreciada.

Gracias

Tenga en cuenta también que no puedo instalar browscap.ini en mi servidor PHP.

¿Fue útil?

Solución

A ver si este código funciona para usted

<?php
function detect_ie(){
    return (sizeof(explode("MSIE",$_SERVER['HTTP_USER_AGENT'])) > 1);
}

if (detect_ie())
    $event = "onbeforeunload";
else
    $event = "onload";

?>

Otros consejos

No se puede. No con 100% de precisión. El mejor método para comprobar que es el agente de usuario, sin embargo, el usuario es libre de no la suministra, o fingir lo que debería evitar confiar en ella.

$ua = $_SERVER['HTTP_USER_AGENT'];

Si el navegador es decir, debe (roughtly) partido (donde # es un número)

Mozilla/#.0 (compatible;  MSIE #.##;

Para los que la expresión regular sería algo así como

'~^Mozilla/[0-9]\.0 (compatible;\s+MSIE~i'

Alternativamente, usted podría simplemente comprobar si la cadena "MSIE", que sería más sencillo y un poco menos estricto.

Pero, como dijo @Michal, hay otros (mejor) implmentations en la get_browser página del manual

uso $_SERVER['HTTP_USER_AGENT']

Comprobar si contiene "IE", seguido directamente por un número.

Yo prefiero hacer esto en Javascript en sí, aunque.

if (typeof window.onbeforeunload !== "undefined") window.onbeforeunload = myFunc;
else window.onunload = myFunc;

librerías Javascript son mucho mejores para detectar y manejar diferente comportamiento del navegador. Simplemente deja una biblioteca madura como jQuery manejar esto y se le multa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top