Browsersprache in PHP robust erkennen
Sie haben versucht, automatisch die entsprechende Seite basierend auf der Browsersprache in Ihr PHP-Skript einzubinden. Allerdings stockt das Skript bei bestimmten Browsern und zeigt ständig die Seite „index_en.php“ an. Um dieses Problem zu beheben und die Zuverlässigkeit Ihrer Lösung zu verbessern, sollten Sie die Implementierung der folgenden Verbesserungen in Betracht ziehen:
lixlpixel_get_env_var($Var) sollte geändert werden, um Umgebungen zu verarbeiten, in denen $GLOBALS[$Var] möglicherweise bereits festgelegt ist.
Anstatt iterativ mit strpos nach akzeptierten Sprachen zu suchen, parsen Sie den HTTP_ACCEPT_LANGUAGE-Header in ein Array und suchen Sie nach a Übereinstimmung.
Erwägen Sie, Ihre verfügbaren Sprachen in einer Datenbank oder einer anderen strukturierten Datenquelle zu speichern, anstatt sich auf das hartcodierte Array zu verlassen.
Implementieren Sie einen robusteren Fallback-Mechanismus, der eine Sprachprioritätsliste enthält oder leitet zu einer Sprachauswahlseite weiter.
Eine vereinfachte Alternative
Für einen einfacheren Ansatz, Sie könnte das folgende Skript verwenden:
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); $acceptLang = ['fr', 'it', 'en']; $lang = in_array($lang, $acceptLang) ? $lang : 'en'; require_once "index_{$lang}.php";
Dieses Skript behält die beabsichtigte Funktionalität bei, die Sprache des Browsers mithilfe des HTTP_ACCEPT_LANGUAGE-Headers zu erkennen und die entsprechende „index_xx.php“-Seite zu laden. Es verwendet die native Substr-Funktion von PHP, um die ersten beiden Zeichen des Sprachcodes zu extrahieren. Das Array $acceptLang definiert die akzeptierten Sprachen. Wenn die erkannte Sprache mit einer im Array übereinstimmt, wird sie verwendet. andernfalls wird „en“ als Standardwert angenommen. Die require_once-Anweisung enthält die entsprechende Datei „index_xx.php“ basierend auf der erkannten Sprache.
Das obige ist der detaillierte Inhalt vonWie kann ich die Browsersprache in PHP zuverlässig erkennen, um die richtige Seite bereitzustellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!