Hallo,
hm, das ist ein verzwicktes Problem.
Hier einmal drei Stichworte:
1. Sind die Textfelder in bestimmmte Delimiter wie z.B. "" eingeschlossen? Also etwa 3,"ein text",7.9,"noch ein text". Dann könntest Du unter Einsatz von regulären Ausdrücken nur diejenigen Zeilenumbrüche erwischen, die tatsächlich das Datensatzende anzeigen (also nicht in Text-Delimiter eingeschlossen sind).
2. Hast Du die Möglichkeit, einen alternativen Trenner für die Datensätze einzusetzen? Also statt \r\n etwa ---\r\n? Also eine Zeichenkette, die so in den Textfeldern nicht vorkommt. Dann könntest Du wieder mit explode() arbeiten.
3. Hast Du schon geschaut, ob es nicht im Internet schon Klassen oder Funktionsbündel gibt, die Dir die Arbeit mit CSV-Daten erleichtern? Man muß das Rad ja nicht immer wieder neu erfinden.
;)
Ciao,
Andreas