Eigentlich gibt es die PHP Standardfunktion get_browser, die ihre Informationen aus einer Ini-Datei browscap liest, die in der jeweils aktuellen Version kostenlos zum download angeboten wird. Allerdings muss in der php.ini der browscap-Parameter gesetzt sein, man kann ihn nicht mit ini_set() ändern. Mit PHP 8.2 und IIS unter Windows 11 Pro führte das in meiner Entwicklungsumgebeung zum Crash des IIS, auf dem Server meines Providers wurde diese Lösung abgelehnt.
So machte ich mich auf die Suche nach Nachbauten, es werden diverse im Internet angeboten, die mehr oder weniger einfach und gut funktionieren. Optimal fand ich die bei Github kostenlos verfügbare Klasse BrowserDetection, deren Ausgabe sieht man unten. Zwei Nachteile hat sie allerdings. Zum einen ist die Konfiguration im PHP-Code und zum anderen erkennt sie die meisten Bots (Webcrawler) nicht. Welche Funktionen welcher Browser mit welcher Version zur Verfügung stellt, kann man auf der CanIUse zumindest für die gängigen Browser herausfinden.
HTTP_USER_AGENT: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_ACCEPT: */*
image/webp
:NEINimage/*
:NEIN*/*
:JAArray ( [os_type] => unknown [os_family] => unknown [os_name] => unknown [os_version] => 0 [os_title] => unknown [device_type] => unknown [browser_name] => unknown [browser_version] => 0 [browser_title] => unknown [browser_chrome_original] => 0 [browser_firefox_original] => 0 [browser_safari_original] => 0 [browser_chromium_version] => 0 [browser_gecko_version] => 0 [browser_webkit_version] => 537.36 [browser_android_webview] => 0 [browser_ios_webview] => 0 [browser_desktop_mode] => 0 [64bits_mode] => 0 )