ホームページ >バックエンド開発 >PHPチュートリアル >PHP はシステム言語またはブラウザ言語をどのように識別するか

PHP はシステム言語またはブラウザ言語をどのように識別するか

WBOY
WBOYオリジナル
2016-06-23 14:04:021093ブラウズ

cn と en の 2 つのサイトがあります
海外から cn にアクセスする場合、直接 en にジャンプする必要があります
これを達成する方法はありますか?
私は

preg_match('/^([a-z\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);$lang = $matches[1];switch ($lang) {	case 'zh-cn' :		//header('Location: http://cn.test.com/');		echo "中国";		break;	case 'zh-tw' :		// header('Location: http://tw.test.com/');		echo "台湾";		break;	case 'ko' :		//header('Location: http://ko.test.com/');		break;	default:		// header('Location: http://en.test.com/');		echo "英文";		break;}
を使用しています
FirefoxとIEの表示が異なりますが、IEは正常です。
$_SERVER['HTTP_ACCEPT_LANGUAGE'] を直接表示した場合
IE は: zh-cn
Firefox は: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3


ディスカッションへの返信 (解決策)

まずは echo $lang を見てください

js を使用してクライアント言語を決定することを検討してください

参考:
http://www.w3help.org/zh-cn/causes /BX2040

私 先ほど述べた通常の一致を使用できると思います。投稿者のニーズを分析し、提案を提供しました。言語バージョンのレコードは Cookie に保存され、言語の種類は取得値から渡すことができます。ブラウザユーザーが中国語のため使用できません)英語のウェブサイトを確認してください。

ユーザーが言語を読み取ると、最初に取得値が読み取られ、次に Cookie 値、最後にブラウザー値が読み取られます。

これら 2 つの記事を参照して、役立つかどうかを確認してください。1 つはブラウザーの取得に関するもので、もう 1 つはオペレーティング システムの情報の取得に関するものです。
php 訪問者のブラウザのコードを取得します
php 訪問者のオペレーティング システムのコードを取得します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。