Baba: Warum wird die Zeile nicht ausgetauscht?

Beitrag lesen

$fp=fopen("./_new/".$file."","a+");
foreach ($array AS $nr => $zeile)
{
if (in_array($nr, $keys))
{
fwrite($fp,"...;\r\n");
        } else {
    fwrite($fp,$zeile."\r\n");
}
}
fclose($fp);


>   
> Es werden (bei if==true) die neue und die alte Zeile in die Datei geschrieben.  
> ich wollte die zeile aber austauschen.  
  
Hallo  

> Dirk  
  
Dein Posting gibt Rätsel auf.  
Ich weiß nicht, was in $array und $keys stehen soll und ob der Handler $fp auf eine noch nicht vorhandene Datei geht.  
  
Ich nehme an, Deine alten Daten liegen in $array, die neuen sollen in die Datei, die mit dem Handler $fp vorbereitet wird, geschrieben werden. In $keys stehen die Indizes, die gelöscht werden sollen?!? Warum dann drei Punkte in die Zieldatei schreiben?  
  
Ich würde das so machen:  
- Datei in Array lesen (file()).  
- Datei löschen.  
- Mittels array\_splice Wert aus Array löschen anhand der Zeilennummer  
- Array in Datei schreiben.  
  
~~~php
$alte_daten  = file($file);  
unlink($file);  
array_splice($alte_daten, $del_zeile, 1);  
// array schreiben, fopen, fputs, bla

Cheers,
Baba