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 the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.