PHPでユーザーのブラウザ設定が日本語か英語かを判別する

PHPでユーザーのブラウザがどの言語設定になっているかを確認し、それぞれのページに飛ばす方法です。
日本人のPCにしか日本語は優先言語にされていないだろうと思い、下記のコードは、日本語が3位でも設定されたブラウザでアクセスした場合は、特定のURLに飛ばすようにしています。

----------
<?php
$languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
$languages = array_reverse($languages);

foreach ($languages as $language) {
if (preg_match('/^ja/i', $language)) {
header("Location: 飛ばすURL");
exit;
} else {
}
?>
----------

上記以外にも、 locale_accept_from_http という関数があり、こちらは自動で最適な言語を判別してくれるようです。
【参考】 Locale::acceptFromHttp: 最もあてはまるロケールを HTTP “Accept-Language” ヘッダにもとづいて探す
【参考】 【PHP】訪問者の言語を自動認識して適正なページを表示する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です