0

我将数据库的备份存储在目录结构中

年/月/日/时间/备份名称

一个例子是

basics_mini/2012/11/05/012232/RATIONAL.0.db2inst1.NODE0000.20110505004037.001 basics_mini/2012/11/06/012251/RATIONAL.0.db2inst1.NODE0000.20110505003930.001

请注意,不能使用备份文件中的时间戳。在自动化测试开始之前,服务器时间设置为 5.5.2011

所以问题是如果我将“基本目录”(basics_mini)传递给我要编码的某个函数,我如何才能获得最新的文件。我的想法是列出基本目录并按时间排序以获取年份。然后我对月、日和时间做同样的事情。

我想知道 php.ini 中是否有任何“更简单”的解决方案。

4

2 回答 2

1

好吧,您可以一次获取整个目录树并从中获取最后一个元素:

$baseFolder = './backup_mini' ;

$arr = glob("{$baseFolder}/*/*/*/*", GLOB_ONLYDIR);
$lastDir = array_pop($arr);
于 2012-11-08T23:12:16.420 回答
1

我不知道任何非常简单的单线,但看起来可能会有所帮助:

$files = array();
$flags = FilesystemIterator::CURRENT_AS_SELF;
$dir = new RecursiveDirectoryIterator('/path/to/basics_mini', $flags);
foreach ($dir as $path) {
    if ($path->isFile()) {
        $files[$path->getPath()] = $path->getFilename();
    }
}

ksort($files);

您可能想要使用 aRecursiveDirectoryIterator因为您的目录结构有点复杂。常量也很有帮助
FilesystemIterator

于 2012-11-08T23:45:13.937 回答