当文件包含文本时继续PHP脚本

当文件包含文本时继续PHP脚本,php,file-io,while-loop,fopen,Php,File Io,While Loop,Fopen,我试图停止我的php代码,直到某个文件包含某个文本 $exit = FALSE; while (!$exit) { usleep(250000); $fname = "/var/www/file2"; $file = fopen($fname, 'r'); $theText = fread($file, filesize($fname)); fclose($file); if (split("\n",

我试图停止我的php代码,直到某个文件包含某个文本

$exit = FALSE;
while (!$exit) {
        usleep(250000);
        $fname = "/var/www/file2";
        $file = fopen($fname, 'r');
        $theText = fread($file, filesize($fname));
        fclose($file);
        if (split("\n", $theText)[0] == "ready" || $dir==0) {
                $exit = TRUE;
                $file = fopen($fname, 'w');
                fclose($file);
        }
}
一旦这个文件的第一行有单词“ready”,我希望脚本继续(或者如果$dir为0)。但是,只有当脚本启动时文件已经包含这个单词时,它才起作用。如果文件在循环中时写入了此单词,则它不起作用


是否有可能它实际上不是重新加载文件,而是加载缓存文件?我该如何解决这个问题?还是有其他原因?

使用控制结构结束
while()
循环执行


您可以使用

逐行读取文件。您的if条件存在一些问题。那么您希望做什么?如果文件为空,是否尝试等待写入文件?当您运行脚本时,文件将在当前状态下读取,它不会等待某个将来的应用程序写入它吗?什么是<代码> $dir <代码>设置?我确定问题必须是Python实际上没有加载更改的文件,而是空白文件,即使在它已经改变之后。有没有办法解决这个问题?当文件已经有文本时,它可以正常工作。我设置了循环次数的限制。当我让它回显每个循环中的文件内容时,它仍然是空的,即使我知道在循环进行时文件已经被写入。但是这并不能解决问题吗?好的,最好使用break;但上述解决方案也应该有效。fgets()只是Stoopkid尝试的另一种方法,因为他说,如果文件中仍然存在“ready”,那么它就可以工作。