2016-08-08 15 views
0

Gibt es eine Möglichkeit, die Spracheinstellungen des Clientcomputers zu kennen? speziell das Listentrennzeichen (Delimiter) ausgewählt. Denn auf meiner Projekt-Website (Entwickelt mit PHP, Javascript, Jquery) kann der Client Berichte im CSV-Format exportieren. Derzeit erstellen wir diese csv mit "Komma" als Trennzeichen. Aber für einige unserer Kunden, wenn sie diese CSV öffnen, werden die Daten in einer Spalte selbst mit Komma getrennt angezeigt.Abrufen des Windows-Benutzerspracheneinstellungswerts

Ich habe verstanden, das ist, weil die Standard List Separator in ihrer OS Systemsteuerung ausgewählt werden kann ein anderes Trennzeichen als Komma sein. Wir möchten jedoch nicht jedem Kunden mitteilen, dass er seine Betriebssystemkonfiguration ändern soll. Gibt es dafür eine andere Lösung? Wenn ich xls Datei anstelle von CSV erzeuge, wird diese gleiche Ausgabe in Zukunft richtig kommen ???

+0

Werfen Sie einen Blick auf die Antwort in http://stackoverflow.com/questions/1011628/detecting-regional-settings-list-separator-from-web#2812853 – rypskar

Antwort

0

Versuchen Sie, diese Funktion

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; 
}