2012/05/20

【PHP】指定ディレクトリのファイルを日付ソートして配列で取得

現在作成中の機能で使った奴のメモ

phpで「scandir」という関数でファイル名一覧は取得できますが、
ファイルの更新日時等は取得できません。

更新日時等でソートする必要がなければいいのですが、どうしてもソートしたいという要望?が
あったので、それに対応するために「DirectoryIteratorクラス」を
使用しました。

この関数は指定したディレクトリ内の情報を取得してくれます。
更新日付とかファイルサイズとかも取ってきてくれるので更新日付以外でもソートできます。

サンプルコード
<?php

// ファイル情報格納用配列
$file_info_list = array();

// DirectoryIterator
$file_list = new DirectoryIterator($path);
foreach ($file_list as $file_info)
{
    // ファイル以外はループに戻る
    if (!$file_info->isFile())
    {
        continue;
    }

    // 配列のキーに更新日時をセット
    $file_info_list[$file_info->getMTime()] = array(
        'file_name' => $file_info->getFilename(),
        'file_size' => $file_info->getSize(),
        'update'    => $file_info->getMTime(),
    );
}

// 更新日時(キー名)の降順にソート
krsort($file_info_list);

var_dump($file_info_list);
getMTime」で更新日時のタイムスタンプが取得できるので、 それをキー名に使用し、キー名でソートを実行します。 ですので、キー名が更新日時のタイムスタンプになります。 終わり

0 件のコメント:

コメントを投稿