2012-04-11 22 views
1

私はその私が「バックアップ」ディレクトリから、最も古いファイル
同様のブログを取得したい(いくつかの具体的な詳細を持つ)ファイルにディレクトリから最も古いファイルを見つける方法??? (PHP)

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_on_11-April-2012_at_08-22-18AM.zip 'はディレクトリ内の最も古いファイルです。

this linkを試しましたが、ロジックを処理できませんでした。

このファイルを取得する方法を教えてください。それは実際には最初の要素最新ファイルを作るよう、前の答えはkrsort();に言及している理由は、私はよく分からない

$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); 
    } 
+1

はhttp://stackoverflow.com/questions/1785039/php-find-oldest-file-in-a-folder –

答えて

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

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

echo reset($files); 
+0

氏Jleagleを行って意味をなします。 – Frank

+0

glob()は$ dirを含む完全なパスを返すので、filemtime($ filename)にする必要があります。 $ dirなしで、そう? –

1

はこれを試してみてください。使用方法

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

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

+0

が行わ参照してください、nは – Frank

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"; 
関連する問題