Come determinare il browser dell'utente con PHP?
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.
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.