ホームページ >バックエンド開発 >PHPチュートリアル >PHP でブラウザ言語を確実に検出して正しいページを表示するにはどうすればよいですか?
PHP でのブラウザ言語の検出が堅牢になりました
ブラウザの言語に基づいて適切なページを PHP スクリプトに自動的に含めようとしました。ただし、特定のブラウザではスクリプトが動作せず、一貫して「index_en.php」ページが表示されます。この問題に対処し、ソリューションの信頼性を高めるには、次の改善点の実装を検討してください。
$GLOBALS[$Var] が既に設定されている可能性がある環境を処理できるように、lixlpixel_get_env_var($Var) を変更する必要があります。
strpos を使用して受け入れられる言語を繰り返し検索する代わりに、HTTP_ACCEPT_LANGUAGE ヘッダーを配列に解析して、
ハードコードされた配列に依存するのではなく、利用可能な言語をデータベースまたは他の構造化データ ソースに保存することを検討してください。
言語の優先順位リストを含む、より堅牢なフォールバック メカニズムを実装します。または、言語選択ページにリダイレクトされます。
簡略化代替手段
より簡単なアプローチとして、次のスクリプトを利用できます。
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); $acceptLang = ['fr', 'it', 'en']; $lang = in_array($lang, $acceptLang) ? $lang : 'en'; require_once "index_{$lang}.php";
このスクリプトは、HTTP_ACCEPT_LANGUAGE ヘッダーを使用してブラウザの言語を検出し、対応する言語をロードするという意図された機能を保持しています。 「index_xx.php」ページ。 PHP のネイティブ substr 関数を使用して、言語コードの最初の 2 文字を抽出します。 $acceptLang 配列は、受け入れられる言語を定義します。検出された言語が配列内の言語と一致する場合、その言語が使用されます。それ以外の場合は、「en」がデフォルトとして想定されます。 require_once ステートメントには、検出された言語に基づいて適切な「index_xx.php」ファイルが含まれます。
以上がPHP でブラウザ言語を確実に検出して正しいページを表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。