Angenommen die Datei existiert und enthält schon einen Zeitstring (Skript wurde schon einmal ausgeführt), dann ist Ausgabe ist bei mir (Apache/1.3.23 (Win32) PHP/4.1.3-dev) wie folgt:
zu speichernder String: 1023047510| (Länge: 11)
Dateigröße vorm Speichern: 11 Bytes
String in Datei test.txt: 1023047508| (Länge: 11)
Speichere neuen String: 1023047508|1023047510| (Länge: 22)
String gespeichert in test.txt (Größe: 11 Bytes)
Lade String: 1023047508| (Länge: 11)
Da frage ich mich: wieso wird ein 22 Byte langer String problemlos in der Datei gespeichert, aber beim erneuten Auslesen in der selben Skriptinstanz ist sie nur 11 Byte groß (wie vorher)?
Du mußt zwischen den Aufrufen von filesize() clearstatcache() aufrufen, weil die Daten von filesize() zwischengespeichert werden.
Du rufst also in Deinem Skript einmal filesize() auf, die Funktion gibt 11 zurück und merkt sich diesen Wert. Später rufst Du beim zweiten Auslesen der Datei nochmal filesize() auf. Hier gibt die Funktion wieder den gespeicherten (jetzt falschen) Wert von 11 zurück.
Dieses Verhalten ist auch in der Anleitung zu filesize() beschrieben.
Gruß,
soenk.e