Ich möchte eine Bedingung in PHP für die verschiedenen Versionen von Internet Explorer ausführen, wie folgt:
if($browser == ie6){ //do this} elseif($browser == ie7) { //dothis } elseif...
Ich habe viele Variationen von ähnlichem Code gesehen, aber ich suche nach etwas Supereinfachem, das sehr einfach zu codieren ist, um ein einfaches Wenn und Sonstiges zu tun und verschiedene Dinge zu tun.
Vielen Dank
BEARBEITEN: Ich brauche dies, um Benutzern verschiedene Nachrichten anzuzeigen, damit CSS-Bedingungen usw. nicht gut sind.
Antworten:
Dies ist, was ich am Ende mit einer Variation von verwendet habe, die nach IE8 und darunter sucht:
quelle
'/(?i)msie [2-8]/'
. Müssen Sie wirklich nach zB 1 suchen? Es wurde 1995 veröffentlicht und einige Monate später durch ie2 ersetzt.'/(?i)msie [1-8]\./'
Eine Version, die weiterhin mit IE10 und IE11 funktioniert:
quelle
Trident\/\d{1,2}.\d{1,2};(.*)rv:([0-9]*)
und$version = $matches[1];
in geändert werden$version = ($matches[2] == 11)?$matches[2]:$matches[1];
. Ein Beispiel für den regulären Ausdruck finden Sie hier: regexr.com/3fb4k.Sie können die Servervariable HTTP_USER_AGENT überprüfen. Der vom IE übertragene Benutzeragent enthält MSIE
Für bestimmte Versionen können Sie Ihren Zustand erweitern
Siehe auch diese verwandte Frage .
quelle
preg_match('/Trident\/7.0; rv:11.0/', $_SERVER['HTTP_USER_AGENT'])
Hier ist eine großartige Ressource zum Erkennen von Browsern in PHP: http://php.net/manual/en/function.get-browser.php
Hier ist eines der Beispiele, das am einfachsten erscheint:
Dann könnten Sie später in Ihrem Code so etwas sagen
quelle
Ich mache das
quelle
PHP hat eine Funktion namens get_browser () , die ein Objekt (oder Array, wenn Sie dies wünschen) mit Details über den Browser der Benutzer und dessen Funktionen zurückgibt .
Ein einfacher Blick gab mir diesen Code:
Dies ist kein todsicherer Weg (wie aus HTTP_USER_AGENT hervorgeht , der gefälscht werden kann und manchmal von PHP falsch analysiert wird), aber es ist der einfachste, den Sie finden können, soweit ich weiß.
quelle
quelle
Sie können auch in PHPs http://php.net/manual/en/function.get-browser.php nachsehen
get_browser();
Vielleicht finden Sie es nützlich für weitere Funktionen.
quelle
Hier ist eine kleine PHP-Funktion, die ich geschrieben habe und die den regulären Ausdruck direkt aus dem von MSFT vorgeschlagenen Javascript-Sniffing-Code aus diesem Artikel verwendet: http://msdn.microsoft.com/en-us/library/ms537509(v=vs.85).aspx
quelle
Nur nach MSIE zu suchen, reicht nicht aus, um den IE zu erkennen. Sie benötigen auch "Trident", das nur in IE11 verwendet wird. Also hier ist meine Lösung, die eine Version 8 bis 11 funktionierte.
quelle
Sie können dies tun, indem Sie den User-Agent-Header analysieren:
http://php.about.com/od/learnphp/p/http_user_agent.htm
Seien Sie vorsichtig, dass dies nicht sehr zuverlässig ist und trivial gefälscht werden kann.
quelle
User Agent
gefälscht werden kann.User-Agent
Inhalte fälschen möchte , möchte er den Inhalt der Seite abrufen, als ob dies wirklich sein Benutzeragent wäre. Das Ergebnis ist das, wonach sie gefragt haben. Kein Problem hier.Ich gehe also davon aus, dass Sie den Browsernamen / die ID aus der Variablen $ _SERVER ["HTTP_USER_AGENT"] abrufen können.
quelle
Sie könnten so etwas für verschiedene Nachrichten oder div / css verwenden
ODER verwenden Sie ein anderes div von css
quelle
aber immer noch nützlich - und funktioniert mit IE11! Hier ist ein weiterer kurzer Weg, um die gängigen Browser für die CSS-Klasse zurückzugeben:
Diese Funktion gibt also Folgendes zurück: "Safari" oder "Firefox" oder "Chrom" oder "dh 8", "dh 9", "dh 10", "dh 11".
ich hoffe es hilft
quelle
Beachten Sie den Fall in 'Trident':
quelle
Wenn Sie über Internet Explorer 11 verfügen und dieser über einen Touchscreen-PC ausgeführt wird, müssen Sie Folgendes verwenden: preg_match ('/ Trident / 7.0; Touch; rv: 11.0 /', $ _SERVER ['HTTP_USER_AGENT']) anstelle von: preg_match ('/ Trident / 7.0; rv: 11.0 / ', $ _SERVER [' HTTP_USER_AGENT '])
quelle
Ein tridendbasierter Ansatz wäre besser. Hier ist eine schnelle Funktion zum Überprüfen von IE 8.
quelle