dedlfix: csv Datei einlesen

Beitrag lesen

Tach!

ich lese eine csv-Datei ein, deren

$array = file("myfile.csv"); // Datei in ein Array einlesen

[...]
$zeilen=explode("|", $array[$count]);


>   
> deren 7. Feld ein per Hochkomma eingeschlossener, zum Teil mehrzeiliger String ist.  
> Wie muß ich den in php nun behandeln, damit ich ihn in eine db dann auch mehrzeilig korrekt eintragen kann?  
  
Zu spät.  
  

> Mir geht es nicht um den zu behandelnden Kontextwechsel. Den beachte ich wohl. Es geht mir mehr darum, php erstmal klar zu machen, dass da eventuell mehrere Zeilen zum String gehören könnten. Gibt es einen explode-parameter, der sowas kann?  
  
Nein, das explode() ist nicht das Problem, das ignoriert die Zeilenumbrüche. Du übergibst dem explode() jedoch bereits eine einzelne Zeile, die schon lange vorher durch die file()-Funktion zurechtgeschnitten wurde.  
  

> Ich hätte sicher besser  
> [mit fgetcsv]  
> so eingelesen, oder?  
  
Genau. Das liest die Datei ordnungsgemäß, wenn die Felder korrekt erstellt sind, also Einrahmungen - und dabei darin enthaltene Einrahmungszeichen ebenfalls beachten.  
  

> Aber davon mal unabhängig, wenn ich alles beim alten ließe, könnte ich php dennoch klar machen, dass es sich eventuell um einen mehrzeiligen String handeln könnte?  
  
Jedenfalls nicht mit file(). Und dann müsstest du dir einen Parser schreiben, den es aber in Form von fgetcsv() schon gibt.  
  
  
dedlfix.