获取最近添加到目录中的最新 15 个文件 php

Get latest 15 files in a directory that are recently added to it php

假设有一个名为 "abc"

的目录

此目录包含多个文件。在所有这些文件中,我只想要 php.

中最新的 "X" 或数组中的最新 15 个文件(如果可能,使用 glob 函数)

我们将不胜感激。

使用此处发布的函数:http://code.tutsplus.com/tutorials/quick-tip-loop-through-folders-with-phps-glob--net-11274

    $dir = "/etc/php5/*";

    // Open a known directory, and proceed to read its contents
    foreach(glob($dir) as $file) 
    {
        echo "filename: $file : filetype: " . filetype($file) . "<br />";
    }

并在 foreach 循环中使用 filetime() 函数作为 IF 语句。: http://php.net/manual/en/function.filemtime.php

一种比 glob 更好的方法是使用 RecursiveDirectoryIterator

  $dir = new \RecursiveDirectoryIterator('path/to/folder', \FilesystemIterator::SKIP_DOTS);
    $it  = new \RecursiveIteratorIterator($dir, \RecursiveIteratorIterator::SELF_FIRST);
    $it->setMaxDepth(99); // search for other folders and they child folders
    $files = [];

    foreach ($it as $file) {
        if ($file->isFile()) {
            var_dump($file);
        }
    }

或者如果您仍想使用 glob

$files = glob('folder/*.{jpg,png,gif}', GLOB_BRACE);
foreach($files as $file) {
   var_dump($file);
}
// directory for searching files

$dir = "/etc/php5/*";

// getting files with specified four extensions in $files

$files = glob($dir."*.{extension1,extension2,extension3,extension4}", GLOB_BRACE);

// will get filename and filetime in $files

$files = array_combine($files, array_map("filemtime", $files));

// will sort files according to the values, that is "filetime"

arsort($files);

// we don't require time for now, so will get only filenames(which are as keys of array)

$files = array_keys($files);

$starting_index = 0;
$limit = 15;

// will limit the resulted array as per our requirement

$files = array_slice($files, $starting_index,$limit);

// will print the final array

echo "Latest $limit files are as below : ";
print_r($files);

如有不妥请指正