Tom: Lösung.? ;-)

Beitrag lesen

Hello,

- Wie ich die Funktion ftruncate() korrekt anwende?  ## File abaschneiden

#vorhandene Datei zum schreiben öffnen
  $fh = fopen('content.html', 'r+');

wenn das geklappt hat

if ($fh) {

#Datei sperren
     $lock_ok = flock($fh, LOCK_EX);

#Datei lesen
     $file = fread($fh, filesize(content.html));

#Text einfügen

#      rewind($file);
#      fwrite($file,"$neuerInhalt");   ## woher kommt denn der neue Inhalt?

#Dateizeiger zurück

fseek($fh, 0, SEEK_SET);  ## ist besser als rewind() und bewirkt hier das Gleiche

#Buffer zurückschreiben, sprich schreibt in $fh den neuen content
     fwrite($fh, $file);

#Das verstehe ich jetzt nicht. Wird meine alter content jetzt nicht gelöscht?

#      Ja, durch Überscxhreiben mit neuem Content werden genau soviele Bytes gelöscht
#      vom alten Content, wie der neue lang ist.

ftruncate($fh, strlen($file));

#      Das macht man, um die Datei auf die Länge des neuen Contents zu kürzen, falls
       der alte länger war. Anderenfalls kann man sich das schenken.

#schliessen
     fclose($fh);

Harzliche Grüße vom Berg
http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau