PHPで指定したディレクトリ内のファイル名を取得し、更新日時順でJSON形式にて出力する方法
先日summernoteに対してギャラリー画像挿入機能を追加する方法をメモしたが、画像ファイル名取得時にPHPのglobをそのまま使っており、ファイル名順でギャラリー画像を表示する形となった。実際に使用する場合はファイル更新日時の降順で表示させたいケースがあると思われるので、対応方法をメモ。
やりたいこと
- PHPで指定したディレクトリ内のファイル名を取得
- ファイル更新日時の降順にソートしJSON形式で出力
対応方法
ソースコード
<?php
//「path/to/」内の全てのファイルを取得
$pattern = '/path/to/*.*';
$list = [];
foreach ( glob( $pattern ) as $file ){
$list[] = $file;
}
//そのままだとファイル名順で出力
echo json_encode($list);
//「ファイルの更新日時:ファイル名」の形で取得
$new_file = [];
foreach ( glob( $pattern ) as $file ){
$new_file[filemtime($file)] = $file;
}
//ファイルの更新日時を降順でソート
krsort($new_file);
//ファイル名のみJSON形式で出力
echo json_encode(array_values($new_file));
リファレンス
glob
https://www.php.net/manual/ja/function.glob.php
krsort
関連記事
-
-
PHPで配列をGETパラメータ化、GETパラメータを配列化する方法
PHPで配列を「name=hoge&id=1&pass=fdkn ...
-
-
PHPでjpg / png画像をWebP画像に変換し保存する方法
PHPでjpg / png画像を圧縮したかった。ただjpg / pngのままだと ...
-
-
PHPで配列を値で検索、破棄
PHPの配列で特定の値が入っていれば それを破棄したいということがあった。 ・u ...
-
-
htaccessではなくPHPでベーシック認証をかける方法
htaccessではなくPHPでベーシック認証をかける方法についてソースコードを ...
-
-
PHPで他サーバにFTP経由にてファイルをアップロードする方法
formで送信した内容をチェックした上で、他サーバにファイルをアップロードしたか ...