<body>
<?php
if ($_SERVER['HTTP_ACCEPT_LANGUAGE']=='zh-CN' || $_SERVER['HTTP_ACCEPT_LANGUAGE']=='zh-cn'){
   echo("<meta http-equiv='refresh' content = '0;URL = http://zh-cn.xcomm.cn'>");
}
elseif ($_SERVER['HTTP_ACCEPT_LANGUAGE']=='zh-TW' || $_SERVER['HTTP_ACCEPT_LANGUAGE']=='zh-tw'){
 echo("<meta http-equiv='refresh' content = '0;URL = http://fan.xcomm.cn'>");
}
elseif ($_SERVER['HTTP_ACCEPT_LANGUAGE']=='zh-HK' || $_SERVER['HTTP_ACCEPT_LANGUAGE']=='zh-hk'){
 echo("<meta http-equiv='refresh' content = '0;URL = http://fan.xcomm.cn'>");
}
elseif ($_SERVER['HTTP_ACCEPT_LANGUAGE']=='zh-MO' || $_SERVER['HTTP_ACCEPT_LANGUAGE']=='zh-mo'){
 echo("<meta http-equiv='refresh' content = '0;URL = http://fan.xcomm.cn'>");
}
elseif ($_SERVER['HTTP_ACCEPT_LANGUAGE']=='zh-SG' || $_SERVER['HTTP_ACCEPT_LANGUAGE']=='zh-sg'){
 echo("<meta http-equiv='refresh' content = '0;URL = http://fan.xcomm.cn'>");
}
elseif ($_SERVER['HTTP_ACCEPT_LANGUAGE']=='en' || $_SERVER['HTTP_ACCEPT_LANGUAGE']=='zh-sg'){
 echo("<meta http-equiv='refresh' content = '0;URL = http://en.xcomm.cn'>");
}
else{
 echo("<meta http-equiv='refresh' content = '0;URL = http://zh-cn.xcomm.cn'>");
}?></body>
这段为什么在FF中不管是英文还是中文只会跳到最后 ELSE 的 URL 中去,判断完全失效,为什么??

解决方案 »

  1.   

    因为firefox、chrome……$_SERVER['HTTP_ACCEPT_LANGUAGE']的值类似于:zh-CN,zh;q=0.8//供参考
    if(strpos(strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']), 'zh-cn') !== false)
    {
      //TODO
    }
      

  2.   

    error_reporting(E_ALL ^ E_NOTICE); 
    // 分析 HTTP_ACCEPT_LANGUAGE 的属性 
    // 这里只取第一语言设置 (其他可根据需要增强功能,这里只做简单的方法演示) 
    preg_match('/^([a-z\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches); 
    $lang = $matches[1]; 
    这个可以,楼上的没试成功