PHP如何获取指定文件夹下最新创建的文件?

php如何获取指定文件夹下最新创建的文件?

PHP 获取文件夹内最新创建文件的技巧

直接使用 scandir() 函数无法获取文件夹中按创建日期排序的文件列表,因为它仅按文件名字典序排序。 我们需要编写代码来读取目录,并根据文件修改时间进行排序。

以下代码片段演示了如何实现:

$files = [];
$directory = './bin'; // 目标文件夹路径

if ($handle = opendir($directory)) {
    while (false !== ($entry = readdir($handle))) {
        $filePath = $directory . '/' . $entry;
        if (is_file($filePath)) {
            $modifiedTime = filectime($filePath); // 获取文件最后修改时间
            $files[$modifiedTime] = $entry; // 使用修改时间作为键值
        }
    }
    closedir($handle);
}

krsort($files); // 按修改时间降序排序

$latestFile = array_shift($files); // 获取第一个元素,即最新修改的文件
var_dump($latestFile); // 输出最新文件的名称
登录后复制

这段代码首先创建一个空数组 $files 用于存储文件信息。然后,它迭代遍历指定目录下的所有条目,检查是否是文件,如果是则获取其最后修改时间 (filectime()),并将其作为键,文件名作为值存储到 $files 数组中。最后,使用 krsort() 函数按键值(即修改时间)降序排序数组,并使用 array_shift() 获取排序后的第一个元素,即最新创建的文件名。

立即学习PHP免费学习笔记(深入)”;

以上就是PHP如何获取指定文件夹下最新创建的文件?的详细内容,更多请关注php中文网其它相关文章!

https://www.php.cn/faq/1232510.html

发表回复

Your email address will not be published. Required fields are marked *