Pedda: Zeile in Textdatei löschen (Problem)

Beitrag lesen

Hallo zusammen,

ich versuche mich seit einiger Zeit in PHP und habe mich nun an ein etwas "komplexeres" Thema gewagt ...
... und schon tauchen die Probleme auf *g*

Situation:
Ich schreibe Kontaktdaten in ein Textfile.
Jeder Datensatz steht in einer Reihe.
Die einzelnen Felder sind durch "#" getrennt.
Das erste Feld enthält eine durchlaufende Nummer.

Von einer Auflistung der Kontaktdaten aus möchte ich per Klick den gewählten Datensatz (also die entsprechende Zeile im txt-file) löschen.
Dazu rufe ich mein "delete.php" auf und übergebe die durchlaufende Nummer der Zeile (delid).

Hier erstmal der code der delete.php
(das Problem beschreibe ich danach !)

<?PHP
    $delid = $_GET['delid'];
    $dir = opendir('../data');
    $filename = '../data/kontakte.txt';
    $filename2 = '../data/tempkontakte.txt';
    $fp = fopen($filename, "r");
    $fp2 = fopen($filename2, "a");
    $contents = file($filename);
    $anzahl = count($contents);
    $setid = 1;

for ($a=0;$a<$anzahl;$a++) {
 list $id,$name,$vorname,$strasse,$plz,$ort,$telg,$telp,$mobg,$mobp,$mail1,$mail2,$nick,$burtzel) = explode("#", $contents[$a]);

if ($fp2) {
          flock($fp2,2);
          if ($id == $delid) {
     $setid = $setid;
   }
   else {
     fputs ($fp2, "$setid#$name#$vorname#$strasse#$plz#$ort#$telg#$telp#$mobg#$mobp#$mail1#$mail2#$nick#$burtzel ");
     $setid = $setid+1;
   }
   flock($fp2,3);
    }
    else {
      echo "Fehlaaaa!";
     }
 }
 // close file
 fclose($fp);
 fclose($fp2);
 unlink('../data/kontakte.txt');
 if (rename("../data/tempkontakte.txt", "../data/kontakte.txt")) {
echo "ok";}

closedir($dir);
?>

Soviel dazu... ich denke mal, es geht auch wesentlich einfacher !?
Nun zum Problem:
Lösche ich (bei z.B.10 Datensätzen gesamt) einen aus der Mitte (also z.B. den fünften) funktioniert alles wunderbar - ich habe im Anschluss 9 Zeilen mit den durchlaufenden Nummern 1 bis 9...
Lösche ich aber den letzten Datensatz, habe ich AUCH 9 Zeilen (wieder 1 bis 9), allerdings hat das txt-file eine Leerzeile am Schluss, was dazu führt, dass ein leerer Datensatz ohne Nummer (müsste dann ja 10 sein) angezeigt wird...

Frage:
(1.) Wieso taucht da die Leerzeile auf ?
Ich sehe keinen Grund, warum das passiert !?
(2.) Hat jemand eine Idee, wie ich diese Leerzeile verhindern kann ?

Thnx 4 support !

Pedda