Zeile löschen

Grunz

Mitglied
Hallo
Ich habe hier diesen Code:
<?

$datei="datei.txt";

$fp = fopen($datei,"w");//Datei wird zum schreiben geöffnet
fputs($fp,$array[2]);


?>

eigentlich sollte er mir hier Zeile 2 löschen.
Aber er löscht mir hier alle Zeilen.
Woran kann das liegen?

MfG
 
mhmm wer hat Dir denn gesagt, das damit die Zeile 2 gelöscht wird?

mit dem Befehl fopen öffnest Du eine Datei und mit der Option "w" öffnest Du eine Datei zum schreiben, wenn es eine Datei mit dem Namen existiert, wird sie überschrieben. Das heißt, Du löscht die Datei [P]datei.txt[/P] einfach mit deinem Script.

Und was ist bei Dir $array[2]??
wird das vorher irgendwo festgelegt?

Cu Major
 
danke für die Antwort.
Ich habe das hier irgendwo auf dem Board gesehen.
Da der unset Befehl bei mir irgendwie nicht geht muss ich irgeneinen Trick anwendn um meine Zeile (z.B. 2) zu löschen.
Oder gibt es da noch andere möglichkeiten?
P.S. der Code ist komplett aus meiner .php datei genommen.

MfG
 
also erstmal, das ist keine Möglichkeit, weil, die ist einfach falsch, versuche es mal mit folgender Funktion:

PHP:
function zeile_loeschen($datei,$zeile)
{
 $datarr = file($datei);
 if($zeile>0 and $zeile <= count($datarr))
 {
  $fp = fopen($datei,"w");
  for($i=0;$i<count($datarr);$i++)
  { 
   if($i != $zeile-1)
   {
    fwrite($fp,$datarr[$i]);
   }
 }
 fclose($fp);
 }	
 else
 {
  echo "Die Zeile $zeile gibt es ja gar nicht!!!";
 }
}

und aufrufen kannst Du jetzt die Funktion mit deinem Bsp.:

PHP:
zeile_loeschen("datei.txt",2)

Cu Major
 
Zurück