fgetcsv() umbruch einfacher umbruch
carsten schlichting
- php
hallo
versuche gerade eine .csv_datei mit fgetcsv() in ein array zu schreiben.
Jetzt tritt folgendes problem auf:
-in einem tabellenfeld ist ein einfacher umbruch ...also: return & shift
fgetcsv() denkt jetzt natürlich, dass eine neue zeile beginnt.
im ms editor wird der einfache Umbruch nicht dargestellt, in einem textverarbeitungprogramm z.B. word aber doch.
welche Zeichen verbergen sich eigentlch hinter dem normalen Umbruch und dem einfachen umbruch?
Und wie geht man am besten hier vor?
habe gedacht, das ich mit fopen() und fread() arbeiten könnte, aber dazu müßte ich wissen, wie die Umbrüche aussehen.
kann mir hier jemand helfen??
grüße carsten
Hallo carsten.
versuche gerade eine .csv_datei mit fgetcsv() in ein array zu schreiben.
Jetzt tritt folgendes problem auf:
-in einem tabellenfeld ist ein einfacher umbruch ...also: return & shift
Was ist das für ein Umbruch? Wie es aussieht, meinst du damit einen Zeilenumbruch, wie ihn die Textverarbeitung oft bietet.
im ms editor wird der einfache Umbruch nicht dargestellt, in einem textverarbeitungprogramm z.B. word aber doch.
Klingt mysteriös.
welche Zeichen verbergen sich eigentlch hinter dem normalen Umbruch und dem einfachen umbruch?
Es gibt nur einen Typ Zeilenumbruch. Das ist unter Unixen und MacOS > Version 10 \n (LF) und unter Windows \r\n (CR+LF).
Ein so genannter Absatz wird häufig über einen doppelten Zeilenumbruch repräsentiert, vielleicht ist das auch hier gegeben. (Wobei ich mich nun frage, was eine Textverarbeitung mit CSV-Dateien zu tun hat.)
Und wie geht man am besten hier vor?
Man stelle uns eine minimale Beispieldatei vor, so dass wir das Problem nachvollziehen können.
Einen schönen Freitag noch.
Gruß, Mathias
Hallo Mathias
danke für die antwort
in einem Textverarbeitungprogramm gibt es doch einmal return und return&shift --> die werden dort unterschiedlich dargestellt.
was sich dahinter verbirgt, weiß ich nicht..vielleicht das was du meintest.
hier ist auf jedenfall die bsp datei:
Variante1: --- das textprgramm zeigt gleiche Umbrüche an
"06.06.2007";"08.06.2007";"Lastschrift
hjhjkhkhjkh
hjkhjkhjkh
hjkhjkh";"EUR";"00,00";"S"
"02.04.2007";"30.03.2007";"Abschluss
hjhhjhjkhjh";"EUR";"00,20";"S"
"12.01.2007";"12.01.2007";"Entgelt/Auslagen";"EUR";"00,00";"S"
"29.12.2006";"30.12.2006";"Abschluss";"EUR";"00,27";"S"
"12.12.2006";"12.12.2006";"hkjhkjh
hjkhjhk
hjkhkj";"EUR";"00,00";"S"
"12.12.2006";"12.12.2006";"Übertrag";"EUR";"00,00";"H"
"12.12.2006";"12.12.2006";"Übertrag";"EUR";"00,00";"H"
"12.12.2006";;Anfangssaldo;"EUR";"00,98";S
"06.06.2007";;Endsaldo;"EUR";"00,55";H
Variante1: --- das textprgramm zeigt 2 verschiedene arten von Umbrüchen an
;;;;;
06.06.07;08.06.07;"Lastschrift
hjhjkhkhjkh
hjkhjkhjkh
hjkhjkh";"EUR";0;"S"
02.04.07;30.03.07;"Abschluss
hjhhjhjkhjh";"EUR";0,2;"S"
12.01.07;12.01.07;"Entgelt/Auslagen";"EUR";0;"S"
29.12.06;30.12.06;"Abschluss";"EUR";0,27;"S"
12.12.06;12.12.06;"hkjhkjh
hjkhjhk
hjkhkj";"EUR";0;"S"
12.12.06;12.12.06;"Übertrag";"EUR";0;"H"
12.12.06;12.12.06;"Übertrag";"EUR";0;"H"
;;;;;
12.12.06;;"Anfangssaldo";"EUR";0,98;"S"
06.06.07;;"Endsaldo";"EUR";0,55;"H"
was denkt ihr?
carsten
hallo noch einmal
habe nun gerade probiert die Beispiele herauszukopieren und habe festgestellt, dass es dort eigentlich keinen Unterschied gibt...
es ist wohl so wie du sagtest , dass textverarbeitungsprogramme doppelte umbrüche benutzen, um einen absatz zu markieren.
aber trotzdem scheint das Problem da zu sein, dass
fgetcsv() nicht mit Umbrüchen in einem "textbereich" klarkommt, wie in dem bsp hier.
06.06.07;08.06.07;"Lastschrift
hjhjkhkhjkh
hjkhjkhjkh
hjkhjkh";"EUR";0;"S"
carsten
echo $begrüßung;
aber trotzdem scheint das Problem da zu sein, dass fgetcsv() nicht mit Umbrüchen in einem "textbereich" klarkommt
Hast du vielleicht vergessen, die Parameter $delimiter und $enclosure von fgetcsv() zu versorgen? Ich kann das Problem mit passenden Werten in Version 5.2.2 nicht nachvollziehen.
echo "$verabschiedung $name";