1

'backup'という名前のディレクトリがあります

以下のファイルが含まれています(いくつかの特定の詳細を含む)

No---File Name----------------------------------------------------------------Date--------------------Time-----------Size

1.  blog-backup_on_11-April-2012_at_08-22-18AM.zip  11-April-2012   08:22:18AM  5.28MB
2.  blog-backup_on_11-April-2012_at_08-25-24AM.zip  11-April-2012   08:25:25AM  5.28MB
3.  blog-backup_on_11-April-2012_at_08-25-46AM.zip  11-April-2012   08:25:47AM  5.28MB
4.  blog-backup_on_11-April-2012_at_08-26-07AM.zip  11-April-2012   08:26:08AM  5.28MB
5.  blog-backup_on_11-April-2012_at_08-27-52AM.zip  11-April-2012   08:27:53AM  5.28MB

「backup」ディレクトリから最も古いファイルを取得したい
「blog-backup_on_11-April-2012_at_08-22-18AM.zip」のように、ディレクトリ内で最も古いファイル。

このリンクを試しましたが、ロジックを処理できません。

このファイルを入手する方法について、いくつか提案をお願いします。

4

4 に答える 4

2
$dir = 'path/to/backup/';

foreach (glob($dir.'*.zip') as $filename) {
  $time = filemtime($filename);
  $files[$time] = $filename;
}
krsort($files);

echo reset($files);
于 2012-04-11T12:06:11.223 に答える
1

これを試して:

    $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);
    }
于 2012-04-11T12:01:40.153 に答える
0

krsort();最初の要素が実際に最新のファイルになるため、前の回答がなぜ言及されているのかわかりません。使用する

    ksort($file_arr);
    echo reset($file_arr);

最も古いファイルをエコーし​​ます。すでに述べたように、最初のコードを変更する必要はありません。

于 2013-02-22T20:43:41.623 に答える
0

ある種の明確なワンライナーを作ることができない限り、それは私がまだここで見ていません。私は、さまざまなソート関数が何をするかを覚えていることに依存しない、読みやすく理解しやすいアルゴリズムを好みます。

$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";
于 2018-02-01T02:47:41.477 に答える