Announcement

Collapse
No announcement yet.

CSV Datei durchsuchen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • CSV Datei durchsuchen

    Moin,

    ich möchte eines CSV Datei nach einer Email- Adresse durchsuchen.
    Wenn die Email Adresse vorhanden ist, dann möchte ich in der Zeile wo die Email Adresse gefunden wird. In der Spalte G abgemeldet eintragen und in der Spalte H das Datum der Suchanfrage.
    Wie geht das?
    Unten habe ich zwei verschiede Quellcodes für das auslesen stehen, womit
    ich bisher nicht zurecht gekommen bin.
    Ich bin für jede Anregung dankbar, da ich sehr wenig Erfahrung mit CSV Datein im zussamenhang mit PHp habe.

    Gruß Niklas



    Code:
    $datei  = "newsletter.csv";
     $heute  = date("d.m.y");
     
     $handle = fopen($datei, "a");
     
     while (($data = fgetcsv($handle, 1000, ",")) !== false) { 
      $string = implode(' - ', $data);
      if(strpos($string, $suche) !== false) {
        echo $string . "<br />\n";
        echo "Ich habe gefunden";
      }
    }
    fclose ($handle);
    
    
    /* 
    $datei  = "newsletter.csv";
    $handle = fopen($datei, "r");
    while($buffer = fread($handle) !== false)
    foreach ($buffer as $moo) {
        $x = explode(';', $moo);
           if ($moo[2] != '') {
           echo 'Hier ist keine Adresse drin!';
                            }
                }
    
    fclose($fh);

  • #2
    Fantastisch:

    Jeder weiss hier was G und H ist?
    Jeder kennt den Aufbau deiner Datei?

    womit
    ich bisher nicht zurecht gekommen bin.
    ...ist keine Frage und ist auch kein Fehler. Stelle eine konkrete Frage oder beschreibe die Fehler
    Zuletzt editiert von Christian Marquardt; 20.04.2009, 08:57.
    Christian

    Comment


    • #3
      Moin,

      entschuldigung. Ich weiß nicht wie ich den Quellcode so ändere, dass die Suchanfrage funktioniert?
      Wie ich in die Spalte G und H schreibe in der Zeile wo die Email Adresse steht.

      Firma Anrede Vorname Nachname eMail Datum

      Das ist die Kopfzeile der Spalten.

      Gruß Niklas

      Comment


      • #4
        Mal grundsätzlich:

        Solange nicht jede Zeile gleich lang ist in deiner Datei, kannst du nichts reinschreiben
        Also
        Datei lesen
        Daten ändern
        Datei neu schreiben

        Sofern jede Zeile gleich lang ist, kannst du ggf. Daten überschreiben, aber nicht "neu" anfügen oder "verlängern"

        Insofern sind die Codeteile nur bedingt von nutzen
        Christian

        Comment


        • #5
          Originally posted by Niklas View Post
          Moin,

          ich möchte eines CSV Datei nach einer Email- Adresse durchsuchen.
          Wenn die Email Adresse vorhanden ist, dann möchte ich in der Zeile wo die Email Adresse gefunden wird. In der Spalte G abgemeldet eintragen und in der Spalte H das Datum der Suchanfrage.
          Wie geht das?
          Hallo,

          vielleicht als kleinen Denkanstoß auf die Schnelle:

          1. Die Datensätze der CSV sollten bekanntlich zeilenweise vorliegen, Du kannst also zeilenweise jeweils einen kompletten (Daten-)Satz auslesen und dann bearbeiten.

          2. Du zerteilst den jeweiligen Datensatz mit explode nach dem Trennungszeichen in ein Array. Hier bitte sicherstellen, dass maskierte Zeichen nicht als Trennunszeichen falsch ausgelesen werden!

          3. Du überprüfst die EMail-Adresse im Array.

          4. Bei einem Match schreibst Du die gewünschten Daten an die Stellen im Array.

          5. Bastelstunde!
          Schreib das Array wieder zusammen in einen String, die Trennungszeichen beim Implode nicht vergessen ;-)

          6. Änderung wegschreiben
          Je nachdem wie Du die Datei ausgelesen hast, bau sie mit den veränderten Satz neu zusammen und speichere sie weg.

          Alternative:

          Lies die Datei in einem Rutsch ein, überprüfe den Match mit einem regulären Ausdruck auf jeweils einen vollen Satz und tausche dann bei einem Match den ganzen (veränderten) Satz auch so komplett aus und schreibe die Datei dann weg.

          Die Welt kann so einfach sein

          Comment

          Working...
          X