Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich die Browsersprache in PHP zuverlässig erkennen, um die richtige Seite bereitzustellen?

Wie kann ich die Browsersprache in PHP zuverlässig erkennen, um die richtige Seite bereitzustellen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-09 09:44:06385Durchsuche

How Can I Reliably Detect Browser Language in PHP to Serve the Correct Page?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn