Vetinari: txt datei mit php bearbeiten

Hallo,

momentan lese ich eine txt Datei direkt in eine MySQL Datenbank ein:

$array = file('adressen.txt');

foreach($array as $row)
{
 $fields = explode(';',$row);

$query = mysql_query("INSERT INTO newsletter (vorname, name, email) VALUES ('$fields[0]', '$fields[1]', '$fields[2]')");
}

das geht aber nur, wenn die txt datei bereits bereinigt ist. ich will drei felder haben: vorname, name, email.
da das ganze für ein mailing ist, ist die e-mail adresse zwingend notwendig und vorname + name sind nur ergänzung.

normalerweise sieht die ausgangs-datei aber so aus, dass ich zeilen habe die entweder komplett leer sind oder in denen nur email adressen oder nur vorname und name stehen.
ich würde die txt datei gerne automatisch bereinigen, so dass entweder eine neue datei geschrieben oder ein array erzeugt wird, welches dann in die datenbank geschrieben wird.
hat jemand einen tipp für diese bereinigung?

Danke und Gruss, Martin

  1. $array = file('adressen.txt');
    $fields = explode(';',$row);

    hat jemand einen tipp für diese bereinigung?

    hört sich an, alsob das ganze ein csv-file wäre, ggf. hilft dir fgetcsv() weiter

    1. @suit

      danke. prinzipiell ja, aber da ich nicht mehr als 2000 einträge habe, habe ich habe mir überlegt, dass es einfacher ist alles wie gewohnt in die datenbank zu schreiben und diese dann im nachhinein zu bereinigen.
      mit mysql kenne ich mich ganz gut aus ;-)

      gruss, martin

      1. hi,

        ... aber da ich nicht mehr als 2000 einträge habe, habe ich habe mir überlegt, dass es einfacher ist alles wie gewohnt in die datenbank zu schreiben

        kannst du natürlich so machen - aber nur so ne logikfrage: wärs denn, gerade wenns nur wenige einträge sind, nicht doch einfacher auf mysql zu verzichten und die vorhandenen csv-files über die unzähligen php-funktionen dafür zu bearbeiten? :-)

        von mysql selbst hab ich aber kaum ahnung, gut möglich dass das so doch wesentlich leichter von der hand geht als ich mir das jetzt vorstelle. aber ich denk da auch daran dass man generell nicht alles was möglich ist, sondernd vielleicht nur alles was nötig ist nutzen sollte ;-)

        grüße & gutes gelingen,

        sph

      2. echo $begrüßung;

        mit mysql kenne ich mich ganz gut aus ;-)

        Das scheint mir nicht so, wenn ich mir diese Zeile ansehe

        $query = mysql_query("INSERT INTO newsletter (vorname, name, email) VALUES ('$fields[0]', '$fields[1]', '$fields[2]')");

        Was ist, wenn jemand beispielsweise O'Brien heißt?

        echo "$verabschiedung $name";