21.16 Eine Datei an ihrem Platz ohne eine temporäre Datei ändern

Problem

Sie wollen eine Datei ändern, ohne die Änderungen in einer temporären Datei zwischenzuspeichern.

Lösung

Lesen Sie die Datei in den Speicher ein, führen Sie die Änderungen durch und schreiben Sie die Datei wieder. Öffnen Sie die Datei mit dem Modus r+ (rb+ unter Windows, falls notwendig) und korrigieren Sie nach dem Schreiben der Änderungen die Länge mit ftruncate():

// Datei zum Lesen und Schreiben öffnen. $fh = fopen('pickles.txt','r+') or die($php_errormsg); // Gesamte Datei in $s speichern. $s = fread($fh,filesize('pickles.txt')) or die($php_errormsg); // ... $s modifizieren ... // An den Dateianfang zurückspringen und das neue $s schreiben. rewind($fh); if (-1 == fwrite($fh,$s)) ...

Get PHP 5 Kochbuch, Third Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.