Hallo Jörg,
CSV ist ein Format, das einem gerne mal um die Ohren fliegt, wenn man mit explode herangeht.
Versuche, die Datei zeilenweise mit fgetcsv einzulesen. Das sollte für die meisten Zwecke die beste Lösung sein. Wie fgetcsv mit Zeilenumbrüchen innerhalb von Anführungszeichen umgeht,
Wenn Du gezwungen bist, die Datei zunächst komplett in einen String zu saugen, kannst Du angeblich einen Trick verwenden, der im PHP Handbuch unter str_getcsv steht:
$rows = str_getcsv($file, "\n", '"');
Das soll den String mit der CSV Datei in Zeilen zerlegen und Zeilenumbrüche innerhalb von Feldbegrenzern korrekt verarbeiten. Meine eigenen Versuche zeigen aber, dass das nicht funktioniert.
Es gibt diverse Alternativansätze, um damit umzugehen, aber ich habe noch keinen selbst verwendet. Die Kommentare der str_getcsv Seite im PHP Handbuch diskutieren einiges und verweisen auf weitere Ressourcen, z.B. StackOverflow. Man kann zum Beispiel auch einen eigenen Stream-Wrapper schreiben, um einen String mit fopen als Stream zu öffnen, aber das klingt schon recht abgehoben.
Rolf
sumpsi - posui - obstruxi