tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
626
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Raven280438 Raven280438 ist offline Mitglied Brokat
    Registriert seit
    Aug 2007
    Beiträge
    329
    Hi,

    ich habe eine CSV-Datei, deren Werte durch , getrennt sind.
    Diese Datei zerlege ich in die einzelnen Zeilen und möchte die Werte gerne in eine Datenbank eintragen.

    Das Problem:
    Normalerweise würde ich die Zeilen mit explode() in die einzelnen Werte aufteilen. Mein Problem ist jedoch, dass Werte, die ein , enthalten in Anführungszeichen ( " ) stehen. Jedoch nur wenn ein , im Wert vorkommt.

    Beispiel:
    Klaus,Mustermann,"klaus@mustermann.de,klaus.mustermann@web.de"

    Wie kann ich jetzt die Zeilen richtig zerteilen?


    Bitte jetzt nicht sagen, dass ich doch beim Erstellen alle Werte in " setze, auf die Erstellung der Dateien hab ich keinen Einfluss.


    Gruß
     

  2. #2
    Papier Papier ist offline Mitglied Bronze
    Registriert seit
    Jul 2003
    Beiträge
    43
    Auf der Suche nach getc (Datei zeichenweise einlesen und per Hand ins Array verpacken) hat mir php.net fgetcsv vorgeschlagen... sieht ganz gut aus, kann dir nur empfehlen

    PHP-Code:
    $file fopen('daten.csv''r');
    $inhalt fgetcsv($file1000',''"'); 
     

  3. #3
    Raven280438 Raven280438 ist offline Mitglied Brokat
    Registriert seit
    Aug 2007
    Beiträge
    329
    Hi,

    ok danke das funktioniert soweit.

    Ein neues Problem ist aber, dass einige Werte auch über mehrere Zeilen gehen (\n)

    Hat jemand ne Idee wie ich diese Werte richtig einlesen kann?



    Gruß
     

  4. #4
    drucko drucko ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Beiträge
    244
    Das darf eigentlich nicht sein, wie soll denn da festgestellt werden wo ein Eintrag zu Ende ist...
    Du könntest alle Zeilenumbrüche entfernen und dann per Abzählen die zusammengehörigen Einträge gruppieren, aber das wär mal sehr... außer der Reihe ...
     

  5. #5
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Die fgetcsv()-Funktion hat auch eine inverse Funktion: fputcsv().
     
    Markus Wulftange

  6. #6
    Raven280438 Raven280438 ist offline Mitglied Brokat
    Registriert seit
    Aug 2007
    Beiträge
    329
    Ok,

    ich suche jetzt einen regulären Ausdruck für ereg_replace, um alle \r\n die zwischen zwei Anführungsstrichen " sind, durch 2 Leerzeichen zu ersetzten.
    \r\n ausserhalb der Anführungsstriche sollen erhalten bleiben.

    Kann jemand weiterhelfen?
     

Ähnliche Themen

  1. C++ Int zerlegen
    Von Shadow1911 im Forum C/C++
    Antworten: 21
    Letzter Beitrag: 25.08.10, 20:23
  2. C# INI zerlegen
    Von toko84 im Forum .NET Café
    Antworten: 5
    Letzter Beitrag: 16.05.07, 10:32
  3. String zerlegen
    Von atango im Forum Java
    Antworten: 11
    Letzter Beitrag: 11.04.07, 18:40
  4. Textdatei zerlegen
    Von igfas im Forum PHP
    Antworten: 2
    Letzter Beitrag: 26.03.07, 15:05
  5. VB.net--Array zerlegen
    Von toggenburg im Forum .NET Archiv
    Antworten: 7
    Letzter Beitrag: 26.04.05, 18:27