2017-10-06 8 views
0

In meiner Anwendung erzeuge ich eine csv-Datei mit einigen Daten mit PHP. Mein Code sieht wie folgt aus.fputcsv() Schreiben von Daten getrennt durch Semikolon in separaten Zellen

$fileHandle = fopen('test.csv', "w"); 
$list = array (
    array('aaa;cc;kk;', 'bbb', 'ccc', 'dddd'), 
    array('123', '456', '789'), 
    array('"aaa"', '"bbb"') 
); 

foreach ($list as $fields) { 
    fputcsv($fileHandle, $fields); 
} 
fclose($fileHandle); 

Die Daten werden aaa;cc;kk; geschrieben Zellen zu trennen (erste Zelle enthält aaa, 2. Zelle cc enthält), anstatt sie auf eine einzelne Zelle zu schreiben.

In der documentation wird erwähnt, dass standardmäßig Trennzeichen Komma ist. Warum werden diese Werte durch Semikolon getrennt? Wie kann ich das vermeiden?

Vielen Dank im Voraus.

+3

Wenn Sie "separate Zellen" sagen, meinen Sie, wie es in Excel aussieht? Wie sieht es im CSV-Text aus? –

+0

@MattS. Ich meine, wie es in Excel aussieht. Im Klartext ist csv korrekt. – Jenz

+3

Dann ist die CSV gültig. Dies ist keine Programmierfrage, sondern eine Excel-Support-Frage. Sie müssen es wahrscheinlich so konfigurieren, dass es ";" als Trennzeichen. –

Antwort

-1

Der Begrenzer kann durch Verwendung des dritten Parameters von fputcsv():

int fputcsv (resource $ handle, array $ Felder [, string $ delimiter = "" [, string $ enclosure = ‚“ gesetzt werden, '[, string $ escape_char = "\"]]])

Bitte ändern:

fputcsv($file,explode(';',$customerInfo)); 

zu:

fputcsv($file,explode(';',$customerInfo), ";"); 

Bitte überprüfen Sie die documentation vor der Frage auf Stack Overflow.

Verwandte Themen