有没有办法知道客户端机器的语言设置?特别是选择了List分隔符(Delimiter)。因为,在我的项目网站(使用PHP,Javascript,Jquery开发)中,客户端可以以csv格式导出报告。目前我们正在使用“逗号”作为分隔符来创建此csv。但是对于我们的一些客户,当他们打开这个CSV时,数据显示在一列中,并以逗号分隔。
我理解这是因为在其OS控制面板配置中选择的默认列表分隔符可能是与逗号不同的分隔符。但是,我们不想告诉每个客户改变他们的操作系统配置。还有其他解决方案吗?如果我生成 xls 文件而不是csv这个将来会出现同样的问题吗?
答案 0 :(得分:0)
尝试此功能
function getUserLanguage() {
$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;
}