PHP ファイル一覧

TOP > PHP > ディレクトリからファイル一覧を取得 サンプル >  ファイル一覧を取得(ファイル更新日でソート)

ファイル一覧を取得(ファイル更新日で降順)


ファイルの更新日時は filemtime関数で取得する事ができます。
usort(配列, 関数) 関数を用いれば配列に独自のソートを行う事ができます。
<?php

// ディレクトリハンドルの取得
$dir_h = opendir( "./img/" ) ;

// ファイル・ディレクトリの一覧を $file_list に
while (false !== ($file_list[] = readdir($dir_h))) ;
closedir( $dir_h ) ;

$file_list2 = array() ;

$i = 0 ;
foreach ( $file_list as $file_name )
{
 //ファイルのみを表示
 if( is_file( "./img/" . $file_name) )
 {
  //$file_list2[N] の [0]にファイル名、[1]にファイル更新日
  $file_list2[$i][0] = $file_name ;
  // ファイルの更新日時を取得
  $file_list2[$i][1] = date("Y/m/d H:i", filemtime( "./img/" . $file_name )) ;
  $i++ ;
  
 }
}

// $file_list2 をファイルの更新日時でソート
usort($file_list2, "order_by_desc") ;

// 出力
print_r($file_list2) ;


// 引数 $file_list2 配列の[N][1] でソートする関数
function order_by_desc($a, $b)
{
    if ( strtotime($a[1]) > strtotime($b[1]) )
    {
        return -1;
    } else if(strtotime($a[1]) < strtotime($b[1])) {
        return 1;
    } else{
        return 0;
    }
}
?>
Array (
[0] => Array ( [0] => 5.jpg [1] => 2012/07/01 02:24 )
[1] => Array ( [0] => 1.gif [1] => 2012/07/01 02:23 )
[2] => Array ( [0] => 3.jpg [1] => 2012/07/01 02:22 )
[3] => Array ( [0] => 9.html [1] => 2012/07/01 02:07 )

PHPサンプルソース集