怪异的HTTP_ACCEPT_LANGUAGE

    今天装上了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 这些语言都有。。看来的确不能相信客户端提交的任何信息

此条目发表在 PHP 分类目录。将固定链接加入收藏夹。

怪异的HTTP_ACCEPT_LANGUAGE》有 2 条评论

  1. Black-Xstar 说:

    也遇到这个问题,怎么解决的?