8

Try running

<?php
  echo filemtime("test.txt")."\n";
  sleep(4);
  file_put_contents("test.txt", "test");
  echo filemtime("test.txt")."\n";
?>

For me the command line printed:

1343490984
1343490984

That can't be right, can it?

Woodgnome
  • 2,281
  • 5
  • 28
  • 52

1 Answers1

19

From the filemtime documentation:

Note: The results of this function are cached. See clearstatcache() for more details.

You need to call clearstatcache() before you call filemtime() again:

echo filemtime("test.txt")."\n";
sleep(4);
file_put_contents("test.txt", "test");
clearstatcache();
echo filemtime("test.txt")."\n";