Frage

Wie der Browser des Benutzers mit PHP?

, um zu bestimmen

So dass, wenn der Benutzer-Browser IE dann die Variable $ alert = "onbeforeunload" und wenn es nicht IE, zum Beispiel Firefox (sonst) dann $ alert = "onload.

Die Hilfe wird sehr geschätzt.

Danke

Bitte beachten Sie auch, dass ich nicht auf meinem PHP-Server installieren browscap.ini kann.

War es hilfreich?

Lösung

Sehen Sie, wenn dieser Code funktioniert für Sie

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

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

?>

Andere Tipps

Sie können nicht. Nicht mit 100% Genauigkeit. Die beste Methode, die die User-Agenten zu überprüfen, ist jedoch der Benutzer frei, nicht zu liefern, oder gefälschtes es so versuchen, es zu vermeiden angewiesen zu sein.

$ua = $_SERVER['HTTP_USER_AGENT'];

Wenn der Browser IE, es sollte (roughtly) passend (wobei # eine Zahl)

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

Für welche die Regex so etwas wie

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

Alternativ können Sie einfach überprüfen, nach der Zeichenfolge „MSIE“, die einfacher sein würde, und etwas weniger streng.

Aber wie @Michal sagte, gibt es andere (bessere) implmentations auf der get_browser Manpage

Verwendung $_SERVER['HTTP_USER_AGENT']

Überprüfen Sie, ob es enthält „IE“ direkt gefolgt von einer Zahl.

Ich würde lieber dies in Javascript selbst wenn.

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

Javascript-Bibliotheken sind viel besser zu erkennen und zu anderem Browser Verhalten zu umgehen. Lassen Sie einfach eine reife Bibliothek wie jQuery damit umgehen, und Sie werden in Ordnung sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top