PHP按时间顺序获取目录中的文件

时间:2012-03-14 17:04:53

标签: php file list

我有一个包含1245.jpg 123456.jpg 23435.jpg 99.jpg等文件的目录。

如果我只使用opendir(),则数组中的文件按字母顺序排序,但我希望文件按其名称所基于的数字顺序排序。

,即上述集合的字母顺序是 123456 1245 2345 99

然而,数字排序会给出 99 1245 2345 123456

有一种简单的方法吗?

3 个答案:

答案 0 :(得分:3)

最简单的方法是将整个文件名列表读入数组并直接在php中对其进行排序,然后才处理文件。

$directory = "/path/to/the/directory";
$filenames = array();
$iterator = new DirectoryIterator($directory);
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        $filenames[] = (int)$fileinfo->getBasename('.jpg');
    }
}
sort($filenames);
print_r($filenames);

答案 1 :(得分:1)

一旦文件在数组中,就可以轻松使用sort()

foreach (glob("folder/*.jpg") as $filename) {
    $files[] = $filename;
}

sort($files, SORT_NUMERIC);

print_r($files);

答案 2 :(得分:0)

为什么不将目录中的所有文件名都读成数组 - 然后根据需要对数组进行排序?