搜索并打开文件



到目前为止,我有一个脚本,它在当前目录中查找指定的文件,如果它不存在,它将进入一个目录并再次搜索。

如果文件存在,则脚本

工作正常,但是如果不存在,则脚本会一直持续到脚本因超过 30 秒而被取消,即使使用计数器来限制执行

$path = 'log.log';
$file_exists = 0;
$search_count = 0;
$search_limit = 3;
while($file_exists == 0) {
    while($search_count < $search_limit) {
        if(file_exists($path)) {
            $file_exists = 1;
            $search_count = $search_limit + 1;
            $resource = fopen($path, "r");  
            while (!feof($resource)) {
               echo fgetss($resource);
            }
            fclose($resource);
        } else {
            $path = '../'.$path;
            $search_count++;
        }
    }
}
我想

你正在寻找这样的东西:

$path = 'log.log';
$file_exists = false;
$search_count = 0;
$search_limit = 3;
while (!$file_exists and $search_count < $search_limit) {
    if(file_exists($path)) {
        $file_exists = true;
        $resource = fopen($path, "r");
        while (!feof($resource)) {
           echo fgetss($resource);
        }
        fclose($resource);
    } else {
        $path = '../'.$path;
        $search_count++;
    }
}

编辑:如果你只是在log.log文件的内容之后,你可以像这样使用file_get_contents($path)

...
if(file_exists($path)) {
    $file_exists = true;
    $contents = file_get_contents($path);
    echo $contents;
}
...

在此处查找有关file_get_contents方法的详细信息。

while($file_exists == 0)

将是无限的,因为您只将$file_exists设置为在找到文件时1

假设文件不存在,那么内部循环将只运行三次,但外部循环将无限运行(尽管没有任何可执行语句)

编辑:

您可以将条件合并为

while($file_exists == 0 && $search_count < $search_limit) {
//your entire code
}

相关内容

  • 没有找到相关文章

最新更新