Marc: CSV-Datensatz einlesen

In einer Seite soll ein csv-Datensatz in eine Textarea eingegeben werden und dann verarbeitet werden. Jetzt bin ich mir nicht ganz sicher, wie ich dass ganze jetzt zeilenweise einlesen kann.

Ich hab es zuerst mit explode("\r\n", $csvString); probiert. Das Problem dabei ist, dass auch innerhalb der Felder der String "\r\n" vorkommen kann. Gibt es einen Befehl oder ähnliches für php, um einen Text seitenweise einlesen zu können?

  1. 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

      1. 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.
        ;)

      Genau das mache ich jetzt auch - phpmyadmin :)

  2. echo $begrüßung;

    In einer Seite soll ein csv-Datensatz in eine Textarea eingegeben werden und dann verarbeitet werden.

    Dafür gibt es die Funktion fgetcsv(). (Das wurde auch schon einige Male hier besprochen.)

    echo "$verabschiedung $name";