PHP Sleep() 函数不起作用,else 语句继续读取旧文件
PHP Sleep() Function Doesn't work, else stament keep reading old file
ignore_user_abort();
set_time_limit(0);
$interval=60;
$flag=true;
file_put_contents("log.log","Starts \r\n");
while($flag){
date_default_timezone_set("America/New_York");
$mytime=date("y/m/d h:i:sa");
$file = fopen("C:/work/testData/test.txt","r");
$myfile=fread($file,filesize("C:/work/testData/test.txt"));
if(stristr($myfile,"Finish writing tables")){
file_put_contents("log.log","Finished! Ready To Send Email $mytime \r\n",FILE_APPEND);
$flag=false;
}else{
file_put_contents("log.log","Still Running $mytime $myfile \r\n",FILE_APPEND);
}
fclose($file);
sleep($interval);
}
我希望代码每 60 秒读取一次 test.txt,一旦 test.txt 包含字符串 "Finish writing tables",然后停止。 Test.txt 文件同时被其他应用程序更新。我发现在 else {} 中,每 60 秒它没有读取更新的 test.txt 文件,仍然读取旧的 test.txt
非常感谢
问题已解决。
在 fclose() 之后添加 clearstatcache()
ignore_user_abort();
set_time_limit(0);
$interval=60;
$flag=true;
file_put_contents("log.log","Starts \r\n");
while($flag){
date_default_timezone_set("America/New_York");
$mytime=date("y/m/d h:i:sa");
$file = fopen("C:/work/testData/test.txt","r");
$myfile=fread($file,filesize("C:/work/testData/test.txt"));
if(stristr($myfile,"Finish writing tables")){
file_put_contents("log.log","Finished! Ready To Send Email $mytime \r\n",FILE_APPEND);
$flag=false;
}else{
file_put_contents("log.log","Still Running $mytime $myfile \r\n",FILE_APPEND);
}
fclose($file);
sleep($interval);
}
我希望代码每 60 秒读取一次 test.txt,一旦 test.txt 包含字符串 "Finish writing tables",然后停止。 Test.txt 文件同时被其他应用程序更新。我发现在 else {} 中,每 60 秒它没有读取更新的 test.txt 文件,仍然读取旧的 test.txt
非常感谢
问题已解决。
在 fclose() 之后添加 clearstatcache()