Hello,
da muss man unterscheiden:
1. Wenn das System anfängt zu arbeiten, ist die Datei bereits
(als leere Datei) vorhanden
2. Es ist nicht definiert, ob eine Datei zum Zeitpunkt des
Benutzungswunsches schon vorhanden ist.
Fall 1.
Öffnen der Dateie mit
$fh = fopen("datei","r+");
$lck = flock($fh, LOCK_EX);
Die Lockfunktion hält das Script nun solange an, bis das Dateilock
erfolgreich ist, oder Timeout des Scripters erreicht ist.
datei vollständig einlesen
$stream = fread($fh,filesize($fh));
Array mit den datensätzen wiederherstellen
$_data = unserialize($stream);
Daten verändern
Dateizeiger wieder auf Anfang
fseek($fh, 0 ,SEEK_SET);
Array wieder in Stream umwandeln
$stream = serialize($_data);
Daten wegschreiben
$ok = fwrite($fh,$data);
Datei nch den gültigen Daten abschneiden
ftruncate($fh, strlen($data));
Datei wieder schießen und freigeben
fclose($fh);
Im Fall 2 muss man die Datei "nichtzerstörend" öffnen im Modus a+, sie dann sperren, den Dateizeiger auf den Dateianfang setzen, und so weiter wie im fall 1.
Liebe Grüße aus http://www.braunschweig.de
Tom
--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen