zuverlässige Benutzer-Browser-Erkennung mit php

Es gibt mehrere Möglichkeiten, den Browser eines Benutzers mit PHP zu erkennen. Eine häufig verwendete Methode ist die Verwendung der $_SERVER['HTTP_USER_AGENT']-Variable, die Informationen über den Browser des Benutzers enthält, wie seinen Namen und seine Version.

Sie können reguläre Ausdrücke verwenden, um diese Zeichenfolge mit bekannten Mustern für verschiedene Browser abzugleichen. Um die Variable $_SERVER['HTTP_USER_AGENT'] im Beispiel zu fälschen, können Sie der Variablen $user_agent einfach eine benutzerdefinierte Zeichenfolge zuweisen, bevor Sie den Code ausführen:

<?php
// in reality you would do $user_agent = $_SERVER['HTTP_USER_AGENT'];
$user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36";

$browser = "Unknown browser";

if (preg_match('/MSIE/i', $user_agent)) {
  $browser = 'Internet Explorer';
} elseif (preg_match('/Firefox/i', $user_agent)) {
  $browser = 'Mozilla Firefox';
} elseif (preg_match('/Chrome/i', $user_agent)) {
  $browser = 'Google Chrome';
} elseif (preg_match('/Safari/i', $user_agent)) {
  $browser = 'Apple Safari';
} elseif (preg_match('/Opera/i', $user_agent)) {
  $browser = 'Opera';
}

echo "Your browser is: " . $browser;
?>

Eine andere Möglichkeit ist die Verwendung der get_browser()-Funktion, die eine browscap.ini-Datei verwendet, um die Benutzeragentenzeichenfolge zu übereinstimmen. Diese Methode ist zuverlässiger als die Verwendung von regulären Ausdrücken, erfordert aber, dass die browscap.ini-Datei auf dem aktuellen Stand ist.

<?php

$browser = get_browser(null, true);
print_r($browser);

Es ist wichtig zu beachten, dass die Browser-Erkennung keine 100% zuverlässige Methode ist, um den Browser des Benutzers zu bestimmen, da die Benutzeragentenzeichenfolge leicht gefälscht werden kann.