在 PHP 中的 sleep() 之后不重新分配值


not reassigning value after sleep() in php

如果文件在同一天更新,我需要检查和更新文件。 如果它较旧,则使脚本休眠一段时间,然后再次检查文件更新时间。问题是我用于重新分配文件时间的变量不起作用。如果文件在脚本运行期间更新,则它保留较旧的时间而不是更新时间。请帮助我!

使用 FilemTime 获取文件更新时间。使用 while 循环检查时间。

提前谢谢..

感谢您的快速回复。这是代码

$current_date=date("Y-m-d 00:00:00");
$file_update_time=date("Y-m-d H:i:s", filemtime("/path/filename"));
while(new DateTime($file_update_time) < new DateTime($current_date))
{
sleep (120);
$file_update_time=date("Y-m-d H:i:s", filemtime("/path/filename"));
}

filemtime()函数始终返回相同结果的原因是此函数的结果被缓存。有关更多详细信息,请参阅clearstatcache()

无需将date()功能与Datetime混合使用。

while(new DateTime('@'.filemtime('/path/filename')) < new DateTime('today')) {
    sleep(120);
    clearstatcache();
}