今天装上了Firefox准备对新改的书签程序测试,这个书签程序是支持多语言的,默认语言是用户发送的 $_SERVER['HTTP_ACCEPT_LANGUAGE']; 我曾经用IE测试过这个值一般是 zh-cn,zh-tw,en 之类的,于是很放心地使用,
$lang_default = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$lang_array = array(‘zh-cn’);
function language($language = ‘zh-cn’){
global $lang_default;
if (!is_language($language)){
$language = $lang_default;
setting_language($language);
}
return $language;
}
function is_language($language){
global $lang_array;
if (in_array( $language,$lang_array ))
return true;
else
return false;
}
$language = language( $_COOKIE['language'] );
require( ‘language/’.$language.’.php’ );
没相当今天用Firefox一看,发现了一个重大错误,$_SERVER['HTTP_ACCEPT_LANGUAGE'] 的值居然变成了zh-cn,zh;q=0.5 。看来Firefox是有些不同。我百度了一下,zh-cn,zh-tw;q=0.7,tw;q=0.3 , zh-cn,en-gb;q=0.8,en-us;q=0.5,zh-tw;q=0.3 这些语言都有。。看来的确不能相信客户端提交的任何信息
也遇到这个问题,怎么解决的?
用;和,符号分离,在数组中循环一下,首先找到哪个语言就是首选的语言