Abfrage des Browsers mit Php
Bernhard Helmes
- php
Hallo ihr Lieben,
ich will mit php wissen, welchen Browser der Anwender benutzt, um ihm den richtigen Code zukommen zu lassen.
Die Preisfrage lautet: Wie heißt die Variabel, die in php-info aufgerufen wird und mit User-Agent bezeichnet wird ?
Gruß aus Aachen
Bernhard
Hi Bernhard
$HTTP_USER_AGENT ist Dein Freund naeheres unter <../../tgbd.htm>.
MfG Olli
Moin!
ich will mit php wissen, welchen Browser der Anwender benutzt, um ihm den richtigen Code zukommen zu lassen.
Falls Du - wie ich - faul bist, kannst Du gerne meinen Code benutzen:
function detect_ua($agent)
{
$agent = " ".$agent;
$ua ="unknown";
if (strpos($agent,"Mozilla") > 0) $ua="mozilla";
if (strpos($agent,"Mozilla/3") > 0) $ua="mozilla3";
if (strpos($agent,"Mozilla/4") > 0) $ua="mozilla4";
if (strpos($agent,"Mozilla/5") > 0) $ua="mozilla5";
if (strpos($agent,"Mozilla/6") > 0) $ua="mozilla6";
if (strpos($agent,"MSIE") > 0) $ua="msie";
if (strpos($agent,"MSIE 2") > 0) $ua="msie2";
if (strpos($agent,"MSIE 3") > 0) $ua="msie3";
if (strpos($agent,"MSIE 4") > 0) $ua="msie4";
if (strpos($agent,"MSIE 5") > 0) $ua="msie5";
if (strpos($agent,"MSIE 6") > 0) $ua="msie6";
if (strpos($agent,"Lotus-Notes") > 0) $ua="notes";
if (strpos($agent,"WebTV") > 0) $ua="webtv";
if (strpos($agent,"Opera") > 0) $ua="opera";
if (strpos($agent,"w3m") > 0) $ua="w3m";
if (strpos($agent,"Lynx") > 0) $ua="lynx";
if (strpos($agent,"amaya") > 0) $ua="amaya";
return($ua);
}
Die wird mit $ua = detect_ua($HTTP_USER_AGENT); aufgerufen.
Ich hab' sie gegen die meisten der oben erwähnten Browser getestet, lediglich der IE3 und Netscape 6 sind auf bloßen Verdacht hin eingetragen.
Der Opera wird erkannt, egal als was er sich tarnt.
Tschau!
Michael
Hi
»» if (strpos($agent,"Mozilla") > 0) $ua="mozilla";
»» [...]
*wegschnippel*
das sieht ja fuerchterlich aus ;-). Schau dir mal die Funct. swtich an.
MfG Olli
Moin!
»» if (strpos($agent,"Mozilla") > 0) $ua="mozilla";
»» [...]*wegschnippel*
das sieht ja fuerchterlich aus ;-).
;-) Danke!
Schau dir mal die Funct. swtich an.
Wie soll switch mir an dieser Stelle helfen? Ich muß nach Textausschnitten suchen, das kann doch IMHO switch nicht, oder?
Falls ich mich irre, korrigiere mich bitte.
Danke!
Michael
P.S.: Ich würde mich über ein paar weitere Kennungen von Browsern freuen, insbesondere wenn dort ein paar Anmerkungen bezüglich des Verhaltens einiger Befehle drinstehen würden.
Im Moment klammere ich die inline-Frames aus, wenn der Mozilla verwendet wird, da dieser dabei (noch) Darstellungsfehler hat. Außerdem hat der Netscape 4 ein etwas anderes StyleSheet, da Netscape Darstellungsfehler bei Randeinstellungen von <li> hat.
Hi,
Falls ich mich irre, korrigiere mich bitte.
du koenntest recht haben ;-)
aber wie findest du:
<?
function detect_ua($agent) {
$agent = " ".$agent;
$ua ="unknown";
$Kennung = array("Mozilla","Mozilla/3","Mozilla/4","Mozilla/5","Mozilla/6","MSIE","MSIE 2","MSIE 3","MSIE 4","MSIE 5","MSIE 6","Lotus-Notes","WebTV","Opera","w3m","Lynx","amaya");
for($i=0;$i<count($Kennung);$i++) {
strpos($agent,$Kennung[$i])?$ua=$Kennung[$i]:$foo;
}
return($ua);
}
echo detect_ua($HTTP_USER_AGENT);
?>
*g*
MfG Olli
Moin!
Hi,
Falls ich mich irre, korrigiere mich bitte.
du koenntest recht haben ;-)
;-)
aber wie findest du:
<?
function detect_ua($agent) {
$agent = " ".$agent;
$ua ="unknown";
$Kennung = array("Mozilla","Mozilla/3","Mozilla/4","Mozilla/5","Mozilla/6","MSIE","MSIE 2","MSIE 3","MSIE 4","MSIE 5","MSIE 6","Lotus-Notes","WebTV","Opera","w3m","Lynx","amaya");
for($i=0;$i<count($Kennung);$i++) {
strpos($agent,$Kennung[$i])?$ua=$Kennung[$i]:$foo;
}
return($ua);
}
echo detect_ua($HTTP_USER_AGENT);
?>
Fast gut, da fehlt nur noch der vereinheitlichte Rückgabestring. Man merkt, daß Du eher aus der C-Schiene kommst, während ich ein "Pascalianer" bin. ;-)
BTW: Gehe ich recht in der Annahme, daß Du ein Battletech-Fan bist? ;-)
Ich mußte eben erst mal grübeln, wer Kai Allard Lio ist, dann fiel der Groschen. Ich muß mir meine Bücher mal wieder durchlesen...
Tschau!
Michael
Hallo !
Schau mal unter: http://www.php3-forum.de/befehle/getenv.htm
Gruß
Jörg