Holladiewaldfee,
Was erzählst Du da? In Textdateien, und CSV gehört zur dieser Klasse, werden Datensätze (also Zeilen) bestimmungsgemäß durch ein _Zeilenendezeichen_ abgeschlossen. Zeilenendezeichen nennt man trivial auch Zeilenumbruch. Wenn nun innerhalb des Datenstromes eines Datensatzes ein solches Zeichen enthalten ist, dann ist aus Sicht der Datei der Datensatz einer Textdatei an dieser Stelle zu Ende. Aus eins mach also zwei oder drei...
Ich kenn die genaue CSV-Spec nicht. Alles was ich hier schreibe, sind Erfahrungswerte. Und die besagen, daß man durchaus einen Zeilenumbruch in einer CSV-Datei unterbringen kann, nämlich dann, wenn man das Ganze in Anführungszeichen packt (Stichwort "Enclosure"). Vgl. auch http://de3.php.net/manual/en/function.fgetcsv.php.
Das gleiche gilt analog für Feldtrennzeichen. Auch die dürfen im Datenfeld nicht enthalten sein. Es gibt dann zwar die "ich dreh mich im Kresi Technik", sprich "Escape-Zeichen", aber dann dürfen die wieder nicht einfach so im Stream vorkommen. Man muss den Stream also sowieso bereinigen.
Nein, kein Escape-Zeichen ... Der "Trick" mit den Anführungszeichen.
Dann kann man auch die extrem leistungsstarken Array-Funktionen von PHP benutzen und hat alle Probleme auf einmal gelöst. Wenn Dir das nicht gefällt, kannst Du ja weiterhin CSV benutzen mit allen beschriebenen Problemen.
Es geht mir darum, eine Alternative aufzuzeigen - mit all ihren Vor- und Nachteilen.
Da das in diesem Thread aber schon genug beschrieben wurde, wie man es "normal" löst, habe ich beschrieben, wie man es intelligent löst. *!*
Schön ... ich bin also doof, weil ich eine andere Meinung habe, die ich auch noch begründen kann. Wie Du meinst ...
Ich habe noch mehrere Kisten mit Karteikarten. Die sind ca. 20 Jahre alt. Die Daten darauf sind noch zu ca. 70 Prozent brauchbar für mich. Ich kann sie noch lesen, auch bei Kerzenschein und ohne Strom. Solche "Dateien" finde ich ich klasse.
Was hab ich gelacht ...
So weit ich weiß bietet MySQL übrigens die Möglichkeit, seine Dateien im XML-Format abzuspeichern ... wahrscheinlich damit man sie sich ausdrucken, in eine Schublade stecken und 100 Jahre später bei Kerzenschein lesen kann.
Ach, bevor Du mir hier nochmal antwortest, schlag doch lieber den MySQL-Leuten mal vor, ihre Datenbank auf CSV auf Karteikarten umzustellen, damit man sie ggf. auch mit der Lupe lesen kann. *grummel*
Ganz toll ... :-(
Damit können wir uns dann ja die Diskussion sparen.
Ciao,
Harry