RegExp um BrowserVersion rauszufinden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
agent
array
bestandteil
break
browser
code
derartigen string
gecko
gerade benutzt code
http
internet
krieg
match
melde
opus
relativ umfangreiche datenbank
safari
string
url
zitat
-
Hi,
mal wieder was zu RegExp:
Ich möchte eigentlich nur die Browserversion und den Browser selber rausfinden, den der User gerade benutzt.
$Agent = $_SERVER['HTTP_USER_AGENT']; $Browser = 'Unknown'; $Version = ""; // Next get the name of the useragent yes seperately and for good reason if(preg_match('/MSIE/i',$Agent) && !preg_match('/Opera/i',$Agent)) { $Browser = 'Internet Explorer'; } elseif(preg_match('/Firefox/i',$Agent)) { $Browser = 'Mozilla Firefox'; } elseif(preg_match('/Chrome/i',$Agent)) { $Browser = 'Google Chrome'; } elseif(preg_match('/Safari/i',$Agent)) { $Browser = 'Apple Safari'; } elseif(preg_match('/Opera/i',$Agent)) { $Browser = 'Opera'; } $Pattern = "/$Browser\/([0-9]\.[0-9]\.[0-9])/"; $Version = preg_match($Pattern,$Agent);
Den Browser selber finde ich ja so ganz leicht raus, aber wie kriege ich die Versionsnummer? Bei derartigen
string(99) "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5"
$Agent strings komme ich grad irgendwie nicht an die Versionsnummer ran. Was mache ich falsch?
Achja in php hab ichs auch schon über get_browser() versucht, allerdings kommt dann bei mir immer nur defaultbrowser und version:0 - weiß jemand wieso? Sonst könnte ich ja die Funktion benutzen, sie ist schön einfach.
Danke! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo,
Zitat von php.net warum get_browsers nicht immer funktioniert:
http://php.net/manual/de/function.get-browser.php
Damit es richtig funktioniert, muss die browscap-Einstellung Ihrer php.ini auf die richtige browscap.ini-Datei Ihres Systems zeigen.
browscap.ini ist nicht Bestandteil von PHP, ...
Ich habe dein Code etwas angepasst ^^. Hoffe es Stört dich nicht :).
<?php $browser = array ( "name" => "Unbekannt", "version" => "Unbekannt", ); $valide_browser = array( "MSIE" => "Microsoft Internet Explorer", "Firefox" => "Mozilla Firefox", "Chrome" => "Google Chrome", "Safari" => "Apple Safari", ); foreach($valide_browser as $cute => $name) { if(strstr($_SERVER['HTTP_USER_AGENT'], $cute)) { $browser["name"] = $name; break; } } preg_match('#(?<browser>' . join('|', array('Version', $cute)) . ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#', $_SERVER['HTTP_USER_AGENT'], $matches); if(isset($matches["version"])) { $browser["version"] = $matches["version"]; } var_dump($browser); ?>
Getestet mit Internet Explorer, Firefox, Chrome und Safari ;).
Ausgaben von var_dump($browser):
array (size=2) 'name' => string 'Microsoft Internet Explorer' (length=27) 'version' => string '9.0' (length=3) array (size=2) 'name' => string 'Mozilla Firefox' (length=15) 'version' => string '14.0' (length=4) array (size=2) 'name' => string 'Google Chrome' (length=13) 'version' => string '20.0.1132.47' (length=12) array (size=2) 'name' => string 'Apple Safari' (length=12) 'version' => string '5.1.7' (length=5)
Bei Verständinis Probleme kannst du dich bei mir Melden ;).
PS: das 2x nach dem Browser gejagt wird ist absicht ^^ -
Hallo
Du kannst auch die API von useragentstring.com nutzen, um Browser-Infos abzufragen
habe dazu hier auch was im Forum gefunden im Beitrag: Browsername ohne get_browser()
weiß nicht ob das besser ist als eigenes Regex
aber da ist zumindest eine relativ umfangreiche Datenbank mit bekannten Browser-Strings
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage