2016-04-15 8 views
2

Ich versuche, eine CSV-Datei mit Zeilenumbrüche innerhalb eines Beschreibungsfelds zu verarbeiten. Wenn Sie jedoch str_getcsv verwenden, um die Zeilen in ein Array aufzuteilen, wird auch auf die Zeilenumbrüche innerhalb des Gehäuses aufgeteilt. Beispiel:str_getcsv Gehäuse funktioniert nicht mit Zeilenumbrüchen

$data ='header1,header2 
value1,"value2a 
values2b"'; 
$data = str_getcsv($data, PHP_EOL, '"'); 
var_export($data); 

Ausgang:

array (
    0 => 'header1,header2', 
    1 => 'value1,"value2a', 
    2 => 'value2b"', 
) 

Erwartungswert:

array (
    0 => 'header1,header2', 
    1 => 'value1,"value2a 
value2b"', 
) 

PHP-Version ist 5.6.19 (cli)

+0

Ich sehe kein erwartetes Trennzeichen für Ihre Ausgabe.In Ihrem str_getcsv haben Sie Trennzeichen PHP_EOL gegeben, was bedeutet, dass es bei neuer Zeile explodiert..Wenn Sie "," anstelle von PHP_EOL übergeben, dann können Sie auch nicht das erwartete Ausgabe – pritesh

+0

Gibt es eine andere Möglichkeit, Zeilenumbrüche zu teilen, die nicht in Anführungszeichen stehen? Oder glaubst du, ich werde etwas Regex dafür brauchen? – jjmirks

Antwort

Verwandte Themen