Domanda

Come determinare il browser dell'utente con PHP?

In modo che se il browser degli utenti è IE allora il $ avviso variabile = "onbeforeunload" e se non è IE, ad esempio Firefox (altro) allora $ avviso = "onload.

Aiuto è molto apprezzato.

Grazie

Si prega inoltre di notare che io non posso installare Browscap.ini sul mio server PHP.

È stato utile?

Soluzione

Vedere se questo codice funziona per voi

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

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

?>

Altri suggerimenti

Non è possibile. Non con precisione del 100%. Il metodo migliore è quello di verificare che l'agente utente, tuttavia l'utente è libero di non fornire, o fingere modo da cercare di evitare di fare affidamento su di esso.

$ua = $_SERVER['HTTP_USER_AGENT'];

Se il browser è IE, dovrebbe (roughtly) partita (dove # è un numero)

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

Per quali l'espressione regolare sarebbe qualcosa di simile

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

In alternativa si può solo verificare la stringa "MSIE", che sarebbe più semplice e un po 'meno rigoroso.

Ma, come ha detto @Michal, ci sono altri (migliore) implmentations sul get_browser pagina di manuale

uso $_SERVER['HTTP_USER_AGENT']

verificare se contiene "IE" direttamente seguita da un numero.

preferisco farlo in javascript per sé però.

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

librerie Javascript sono molto meglio per rilevare e gestire il comportamento del browser diverso. Basta che una biblioteca maturo come jQuery gestire questo e non avrete problemi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top