你需要在循环上调用clearstatcache().
来自http://php.net/manual/en/function.filesize.php
注意:此函数的结果已缓存.有关更多详细信息,请参阅clearstatcache().
示例实现(这里我使用修改时间来检查更改,但您可以使用filesize):
$filePath = '/http/test/test.txt'; $timeInSeconds = 2; if (file_exists($filePath)) { $fileModificationUnixTime = filemtime($filePath); while (filemtime($filePath) === $fileModificationUnixTime) { echo 'No changes found.'; sleep($timeInSeconds); clearstatcache(); // clears the cached result } echo 'Changes found'; }