Textlänge in CSV-Datei begrenzt?
Seppel20
- php
Hallo zusammen.
Habe ein Problem mit relativ langen Texten, die in einer CSV-Datei (ohne
Trennzeichen) geschrieben sind. Beim Auslesen bricht der Text irgendwann ab. Es wird also nicht der gesamte Text ausgegeben.
Kann es sein, dass der Text irgendwie in der Länge bschränkt ist?
Falls ja, kann man das ändern?
Mit Dank im Voraus.
Seppel20
OK, vergesst es direkt wieder!
Im Text kam ein Semikolon vor...
Oh man, manchmal kann man sich echt selber Probleme machen! :-)
Hello,
OK, vergesst es direkt wieder!
Im Text kam ein Semikolon vor...
Gerade deshalb werde wir es nicht vergessen ;-))
Das CSV-Format ist mWn nirgends wirklich festgelegt. Eine Variante hat sich aber durchgesetzt:
"feld 1";"feld 2; Erklärung";"feld 3 enthält ein "" und ist der dritte Sonderfall"CRLF
Zur Erklärung:
Felder in Begrenzungszeichen verpacken. Standard sind die Doppelhäkchen
Wenn Dopplehäkchen (die Begrenzer) im Text vorkommen, müssen sie durch DOPPELUNG, und nicht durch besonderes Escape-Zeichen maskiert werden.
Die Feldtrenner (meist Semikolon) dürfen dann auch im Text vorkommen.
CRLF-Zeichen dürfen nun ebenfalls IM TEXT vorkommen.
Leere Spalten müssen entsprechend mit ""; eingefügt werden
(letzte Spalte möglichst ohne Semikolon)
Das führt dazu, dass man diese Datei nicht mehr mit FILE() einlesen kann (zumindest nicht sinnvoll), sondern nur noch zeilenweise mit FGETCSV().
Wer diese regeln beachtet, hat für kleine Dateien (bis ca. 500 Zeilen) bei PHP eine sehr schöne Möglichkeit, sofort auf jeden Feldwert zugreiden zu können. Denn FGETCSV() liefert das Array der in der Zeile enthaltenen Spalten.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom