Woodgnome
Woodgnome

Reputation: 2391

filemtime() constant during execution despite changes to file

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?

Upvotes: 8

Views: 2878

Answers (1)

user142162
user142162

Reputation:

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";

Upvotes: 18

Related Questions