Christian Kruse: PHP, fputs stiehlt Zeichen

Beitrag lesen

Hallo,

[... erste Zeile einer Datei ersetzen ...]

Meine Frage: In welche Falle bin ich getappt?

Du hast nicht bedacht, dass Dateien keine Zeilen kennen. Fuer Dateien (und eben
dann auch Datei-Operationen) sind das nur Byte-Folgen. Und wenn du jetzt in eine
Datei etwas hineinschreibst, dann nimmt das eingeschriebene einen bestimmten
Platz ein. Wenn der Platz zu viel ist fuer die erste Zeile (genauer gesagt, die
Bytes, die die erste Zeile eingenommen hat), dann wird eben ueber die danach
folgenden Bytes drueber geschrieben. Loesung: erstelle eine temporaere Datei,
schreibe sie komplett neu und benenne sie hinterher um.

Gruesse,
 CK