cr: ein array element löschen aus txt datei

hallo zusammen,

ich grübel schon eine ganze weile an einem problem, habe auch schon im internet gesucht und einzelteile gefunden, nun habe ich aber irgendwo fehler in meiner logik.

ich möchte gerne die 2. zeile dieser textdatei entfernen, die 3. zeile soll somit eine zeile höher rutschen

inhalt der test.txt

paul|hallo ich bin der paul|
susi|hallo ich bin die susi|
peter|ist auch hier|
_____________________________________________
das nicht funktionierende php script

$datei = file('test.txt');
$datei_handle = fopen("test.txt", 'w');
foreach($datei as $zeile)
{
 if($zeile == "susi|hallo ich bin die susi|")
 {
  unset($zeile);
 }
 fwrite($datei_handle, $zeile);
}
fclose($datei_handle);

danke für jeden tip!

grüße cr

  1. Moin Moin!

    {
    if($zeile == "susi|hallo ich bin die susi|")
    {
      unset($zeile);
    }
    fwrite($datei_handle, $zeile);

    Schreib Die Zeile nicht, wenn sie Dir nicht gefällt. Oder anders ausgedrückt: WENN Dir die Zeile gefällt, SCHREIBE die Zeile.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    1. hallo,

      ich habs glaub ich.

      <?php
      $datei = file('test.txt');

      $datei_handle = fopen("test.txt", 'w');

      foreach($datei as $zeile)
      {
       if($zeile != "hallo2|2|\n")
       {
       fwrite($datei_handle, $zeile);
       }
      }
      fclose($datei_handle);
      ?>

      danke

  2. Moin Moin!

    $datei = file('test.txt');
    $datei_handle = fopen("test.txt", 'w');

    Willst Du gleichzeitig aus einer Datei lesen und wieder in die Datei schreiben? Das geht in aller Regel nicht gut. Schreibe in eine Temp-Datei und benenne die Temp-Datei anschließend um.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    1. Hallo,

      $datei = file('test.txt');
      $datei_handle = fopen("test.txt", 'w');

      Willst Du gleichzeitig aus einer Datei lesen und wieder in die Datei schreiben?

      nein, will er nicht. Er liest die Datei zunächst vollständig mit file() in einem Rutsch, und schreibt sie dann sequentiell wieder.

      Das geht in aller Regel nicht gut. Schreibe in eine Temp-Datei und benenne die Temp-Datei anschließend um.

      Ansonsten ein guter Rat. :-)

      So long,
       Martin

      --
      TEAM: Toll, Ein Anderer Macht's.