Размер файла PHP не изменяется после добавления

У меня проблема с PHP-файлом I / O.

$file = fopen("/tmp/test.txt", "w");
fwrite($file,"hi theren");
fclose($file);
echo filesize("/tmp/test.txt")."n"; # displays 9

$file = fopen("/tmp/test.txt", "a");
fwrite($file,"hi theren");
fclose($file);
echo filesize("/tmp/test.txt")."n"; # also displays 9 !!!!!!!

Как видно, я изменяю размер файла после начальной записи, добавляя к нему. Почему я получаю 9, а размер файла в обоих случаях? Я ожидаю 18 в качестве выхода в случае 2.

1 ответов


вам нужно очистить кэш состояния файла, вызвав функцию clearstatcache до вы называете filesize() снова после изменения файла:

// write into file.
// call filesize()

clearstatcache();

// append to the fiile.
// call filesize()

для того, чтобы получить лучшую производительность PHP кэширует результат filesize() поэтому вам нужно сказать PHP, чтобы очистить этот кэш, прежде чем вызывать filesize() снова в измененном файле.