Php 如何从目录中找出最旧的文件???(菲律宾)

Php 如何从目录中找出最旧的文件???(菲律宾),php,filemtime,Php,Filemtime,我有一个名为“备份”的目录 其包含以下文件(包含一些特定的详细信息) 我想从“备份”目录中获取最旧的文件 例如“blog-backup”(在2012年4月11日)和“blog-backup”(在08-22-18AM.zip)是目录中最早的文件 我试过了,但无法处理逻辑 请给出一些建议,如何获取此文件?尝试以下方法: $dir_path = 'c:/my_dir'; if($handle = opendir($dir_path)) { while(fals

我有一个名为“备份”的目录

其包含以下文件(包含一些特定的详细信息)

我想从“备份”目录中获取最旧的文件
例如“blog-backup”(在2012年4月11日)和“blog-backup”(在08-22-18AM.zip)是目录中最早的文件

我试过了,但无法处理逻辑

请给出一些建议,如何获取此文件?

尝试以下方法:

    $dir_path = 'c:/my_dir';
    if($handle = opendir($dir_path))
    {

        while(false !== ($entry = readdir($handle)))
        {
            $created = filemtime($dir_path . $entry);
            $myfiles[$created] = $entry;
        }



        krsort($myfiles); //first element is oldest file

        print_r($myfiles);
    }

我不知道为什么前面的答案提到
krsort()
    ksort($file_arr);
    echo reset($file_arr);

将回显最旧的文件。前面提到的开始代码不需要更改。

除非你能清楚地说出某种类型的一行代码,我在这里还没有看到。我更喜欢可读和可理解的算法,它们不依赖于您记住各种排序函数的功能

$latest_file_time = 0;
foreach(glob("backup/*") as $this_filename){
        $file_changed_time = filemtime($this_filename);
        if($file_changed_time > $latest_file_time){
                $latest_file = $this_filename;
                $latest_file_time = $file_changed_time;
        }
}

echo "latest file time = $latest_file_time latest file name = $latest_file";
See glob()返回包含$dir的完整路径,因此我认为应该是filemtime($filename);没有$dir,对吗?
    ksort($file_arr);
    echo reset($file_arr);
$latest_file_time = 0;
foreach(glob("backup/*") as $this_filename){
        $file_changed_time = filemtime($this_filename);
        if($file_changed_time > $latest_file_time){
                $latest_file = $this_filename;
                $latest_file_time = $file_changed_time;
        }
}

echo "latest file time = $latest_file_time latest file name = $latest_file";