この記事では、PHP がユーザーの言語を検出する方法の例について説明します。皆さんの参考に共有してください。詳細は以下の通りです
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
関数 getPreferredLanguage() { $langs = array(); if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { // 文字列を部分 (言語と Q 要素) に分割します preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)s*(;s*qs*=s*(1|0.[0-9]+) )?/i',$_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse); if (count($lang_parse[1])) { // "en" => 0.8 のようなリストを作成します $langs = array_combine($lang_parse[1], $lang_parse[4]); // q 係数のないデフォルトを 1 に設定します foreach ($langs as $lang => $val) { if ($val === '') $langs[$lang] = 1; } // 値に基づいてリストを並べ替えます arsort($langs, SORT_NUMERIC); } } //最も重要な(最初)を抽出します foreach ($langs as $lang => $val) { ブレーク } //複雑な言語を単純化する場合 if (stristr($lang,"-")) {$tmp =explode("-",$lang); } $lang を返す; } |
この記事が皆様の PHP プログラミング設計に役立つことを願っています。