• 締切済み

更新日時でソートしてファイル一覧を取得したい

特定のディレクトリのファイル一覧を取得したいのですが、必要なのは最終更新日時でソートし、最新の30件のファイル名です。(ディレクトリのファイル件数は30件以上とは限りません) exec()を使った外部コマンドでは最新の1件のファイル名は取得できたのですが、30件となると方法がわかりません。 今考え付くのは、 dir()コマンドで取得したファイル名から最終更新日時を取得し、ソートして30件取り出す という方法です。 他にもっとスマートな方法で最新30件のファイル名を取得する方法はないでしょうか? よろしくお願いします。

みんなの回答

  • rokujiro
  • ベストアンサー率53% (17/32)
回答No.1

$dir = opendir('.'); $i=0; while(($dt = readdir()) !== FALSE){ if(($dt!='.')&&($dt!='..')&&($dt!='index.php')&&((ereg("jpg",$dt))||(ereg("gif",$dt)))){ settype($dfile_size,"double"); $dfile_size = round(filesize("$dt")/1000,1); if($dfile_size == 0) $dfile_size = 0.1; $file_size = sprintf("%01.1f",$dfile_size)."KB"; $time = filemtime("$dt"); $rcd = ereg_replace(".jpg", "", $dt); $p_data[$i]="$time,<a href=$dt>$rcd</a>"; $i++; } } closedir($dir); $j=1; rsort($p_data); foreach ($p_data as $tmp) { $p_title = split("\,",$tmp); print "$j/$i<br>$p_title[1]<hr>\n"; $j++; } 解析&カスタマイズして使用して下さい。

Masa333
質問者

お礼

回答ありがとうございます。 更新日時でソートしてファイル名を取得するというのは無理みたいですね・・・。 コーディングは参考にさせていただきたいと思います。ありがとうございました。

関連するQ&A