PHP 使用PHP检测用户语言

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 使用PHP检测用户语言相关的知识,希望对你有一定的参考价值。

function getPreferredLanguage() {
	$langs = array();
	if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
		// break up string into pieces (languages and q factors)
		preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i',
				$_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse);
		if (count($lang_parse[1])) {
			// create a list like "en" => 0.8
			$langs = array_combine($lang_parse[1], $lang_parse[4]);
			// set default to 1 for any without q factor
			foreach ($langs as $lang => $val) {
				if ($val === '') $langs[$lang] = 1;
			}
			// sort list based on value	
			arsort($langs, SORT_NUMERIC);
		}
	}
	//extract most important (first)
	foreach ($langs as $lang => $val) { break; }
	//if complex language simplify it
	if (stristr($lang,"-")) {$tmp = explode("-",$lang); $lang = $tmp[0]; }
	return $lang;
}

以上是关于PHP 使用PHP检测用户语言的主要内容,如果未能解决你的问题,请参考以下文章

php 使用PHP自动检测浏览器语言

PHP检测函数是否存在

检测 PHP 中的浏览器语言

PHP codeigniter使用cookie检测语言并加载它

Pear 包语言检测无法在 PHP 7 上检测到英语

PHP 使用PHP进行简单的用户代理(移动和智能手机)检测和Redirction