Signatur
Beschreibung
get_browser() durchsucht die browscap.ini-Datei (Browser Capabilities) nach dem übergebenen User-Agent-String und gibt ein Objekt oder Array mit Informationen über den Browser zurück. Diese Informationen umfassen unter anderem den Browsernamen, die Version, das Betriebssystem, die Unterstützung von JavaScript, Cookies und anderen Web-Technologien.
Damit die Funktion verwendet werden kann, muss in der php.ini die Direktive browscap auf den Pfad einer gültigen browscap.ini-Datei zeigen (z. B. browscap = /path/to/browscap.ini). Eine aktuelle Datei kann von browscap.org heruntergeladen werden.
Wird $user_agent auf null gesetzt, verwendet PHP automatisch den User-Agent-String des aktuellen HTTP-Requests aus $_SERVER['HTTP_USER_AGENT']. Mit dem Parameter $return_array kann gesteuert werden, ob das Ergebnis als Objekt (Standard) oder als assoziatives Array zurückgegeben wird.
Hinweis: Da Browser-Identifikation über den User-Agent manipulierbar ist, sollte get_browser() nur für optionale Optimierungen (z. B. Feature-Detection für Ausgabeformatierung) genutzt werden, nie für Sicherheitsentscheidungen. Moderne Alternativen wie Client-seitiges Feature-Detection via JavaScript sind in vielen Fällen zuverlässiger.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $user_agent | string|null | null | Der zu analysierende User-Agent-String. Bei null wird $_SERVER['HTTP_USER_AGENT'] des aktuellen Requests verwendet. |
| $return_array | bool | false | Gibt an, ob das Ergebnis als assoziatives Array (true) oder als Objekt (false, Standard) zurückgegeben werden soll. |
Rückgabewert
$return_array = true ein assoziatives Array) mit den Browser-Eigenschaften zurück. Liefert false, wenn die browscap.ini-Datei nicht konfiguriert ist oder der User-Agent nicht gefunden wurde.Beispiele
Browser-Informationen des aktuellen Nutzers ermitteln
<?php
// browscap muss in php.ini konfiguriert sein:
// browscap = /etc/php/browscap.ini
$browser = get_browser(null, true);
if ($browser !== false) {
echo 'Browser: ' . $browser['browser'] . "\n";
echo 'Version: ' . $browser['version'] . "\n";
echo 'Plattform: ' . $browser['platform'] . "\n";
echo 'JavaScript: ' . ($browser['javascript'] ? 'Ja' : 'Nein') . "\n";
echo 'Cookies: ' . ($browser['cookies'] ? 'Ja' : 'Nein') . "\n";
} else {
echo 'browscap.ini nicht verfügbar.';
}
Benutzerdefinierten User-Agent analysieren
<?php
// Einen spezifischen User-Agent-String übergeben
$ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) '
. 'AppleWebKit/605.1.15 (KHTML, like Gecko) '
. 'Version/16.0 Mobile/15E148 Safari/604.1';
$info = get_browser($ua);
if ($info !== false) {
echo 'Browser: ' . $info->browser . "\n";
echo 'Mobilgerät: ' . ($info->ismobiledevice ? 'Ja' : 'Nein') . "\n";
echo 'Plattform: ' . $info->platform . "\n";
} else {
echo 'Keine Browser-Information gefunden.';
}
// Wichtig · Fallstricke
Konfiguration erforderlich: Die Funktion ist ohne eine korrekt eingerichtete browscap-Direktive in der php.ini nicht funktionsfähig und gibt false zurück. Auf Shared-Hosting-Umgebungen ist dies häufig nicht verfügbar.
Aktualität der Datenbank: Die browscap.ini-Datei veraltet schnell, da ständig neue Browser-Versionen erscheinen. Es empfiehlt sich, regelmäßig eine aktuelle Version von browscap.org herunterzuladen. Als Alternative bieten sich PHP-Bibliotheken wie browscap-php an, die keine INI-Konfiguration benötigen.
Sicherheit: Der User-Agent-String kann vom Client frei gesetzt und gefälscht werden. Sicherheitskritische Entscheidungen dürfen niemals auf Basis von get_browser() getroffen werden.
Performance: Das Parsen der browscap.ini kann je nach Dateigröße langsam sein. Ergebnisse sollten ggf. gecacht werden.