ホームページ > バックエンド開発 > PHPチュートリアル > PHP でブラウザ言語を確実に検出して正しいページを表示するにはどうすればよいですか?

PHP でブラウザ言語を確実に検出して正しいページを表示するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-09 09:44:06
オリジナル
384 人が閲覧しました

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

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート