如何找到上次在php中有效修改文件夹内容的时间

如何找到上次在php中有效修改文件夹内容的时间,php,Php,我需要对文件夹进行检查,查看它上次被修改的时间。我指的是最后一次修改它,或者它包含的任何文件上次修改的地方 到目前为止,我已经尝试了两种方法: 对文件夹使用stat()函数,然后获取mtime $stat = stat("directory/path/"); echo $stat["mtime"]; 使用文件夹上的filemtime()函数 echo (filemtime("directory/path/")); 这两种方法都返回相同的值,如果我更新其中一个文件,该值不会更改。我猜这是因

我需要对文件夹进行检查,查看它上次被修改的时间。我指的是最后一次修改它,或者它包含的任何文件上次修改的地方

到目前为止,我已经尝试了两种方法:

  • 对文件夹使用stat()函数,然后获取mtime

    $stat = stat("directory/path/");
    echo $stat["mtime"];
    
  • 使用文件夹上的
    filemtime()
    函数

    echo (filemtime("directory/path/"));
    
  • 这两种方法都返回相同的值,如果我更新其中一个文件,该值不会更改。我猜这是因为文件夹结构本身没有改变,只改变了其中一个文件的内容

    我想我可以遍历目录中的所有文件并检查它们的修改日期,但是可能有很多文件,这似乎不是很有效

    有谁能建议我如何以有效的方式获得文件夹及其内容的最后修改时间吗?

    moi

    我建议您使用
    foreach
    函数循环所有文件并使用它,我认为没有用于此目的的函数。下面是使用该循环的非常简单的示例:

    $directory = glob('gfd/*');
    foreach ($directory as $file) {
        $mdtime = date('d.m.Y H:i:s', filemtime($file));
    }
    echo "Folder last modified: $mdtime<br />"; 
    
    请参阅此问题:

    moi

    我建议您使用
    foreach
    函数循环所有文件并使用它,我认为没有用于此目的的函数。下面是使用该循环的非常简单的示例:

    $directory = glob('gfd/*');
    foreach ($directory as $file) {
        $mdtime = date('d.m.Y H:i:s', filemtime($file));
    }
    echo "Folder last modified: $mdtime<br />"; 
    


    请看这个问题:

    也许可以看看SplFileInfo类:@DirkMcQuickly使用SplFileInfo getMTime()得到的结果与stat和filemtime完全相同您的服务器在windows或linux上运行吗?@DirkMcQuickly是ubuntu linux服务器如果您需要定期检查,您可以跟踪文本文件中最后一次文件更改(当您更改文件时,更改文本文件),并从中获取您的值。也许可以查看SplFileInfo类:@DirkMcQuickly使用SplFileInfo getMTime()给我的结果与stat和filemtime完全相同您的服务器在windows或linux上运行吗?@DirkMcQuickly它是ubuntu linux服务器如果您需要定期检查,您可以在文本文件中跟踪最后一次文件更改(当您更改文件时,更改文本文件),然后从中获取您的价值。不过,您没有考虑子文件夹。让这个递归,我会+1你。谢谢。我主要关心的是速度和效率,因为这可能会得到大量的使用。我没有想到使用glob()。@h2ooooo给你。)在这种情况下,您还可以使用RecursiveDirectoryIterator@Finglish glob()并不比任何其他循环遍历所有文件的方法快。所以,这个答案并没有给你提出的问题增添新的内容。foreach确实很快,但它不是foreach,这在本场景中是一个瓶颈。不过,您没有考虑子文件夹。让这个递归,我会+1你。谢谢。我主要关心的是速度和效率,因为这可能会得到大量的使用。我没有想到使用glob()。@h2ooooo给你。)在这种情况下,您还可以使用RecursiveDirectoryIterator@Finglish glob()并不比任何其他循环遍历所有文件的方法快。所以,这个答案并没有给你提出的问题增添新的内容。foreach确实很快,但它不是foreach,这在本场景中是一个瓶颈。