勉強したことのメモ.

Webエンジニア / プログラマが勉強したことのメモ。

PHPで指定したディレクトリ内のファイル名を取得し、更新日時順でJSON形式にて出力する方法

  PHP

先日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

https://www.php.net/manual/ja/function.krsort.php

 - PHP

  関連記事

MySQLとPHPの「image-comparator」ライブラリを使用して類似画像検索を実装する方法
MySQLとPHPの「image-comparator」ライブラリを使用して類似画像検索を実装する方法

先日PHPで画像を比較して類似度を算出する「image-comparator」ラ ...

【2025年版】PHPとStripeを用いてサイト内にクレカ決済及びキャンセル機能を実装する方法
【2025年版】PHPとStripeを用いてサイト内にクレカ決済及びキャンセル機能を実装する方法

5年ほど前にPHPとStripeを用いたクレカ決済機能をテスト実装したが最近試し ...

Podmanで導入したapache-phpに各種PHPモジュールを追加する方法
Podmanで導入したapache-phpに各種PHPモジュールを追加する方法

先日Podmanでapache-php8.4を導入したが、phpinfoで確認す ...

PHPでCookie保存時にPartitioned属性を設定する方法
PHPでCookie保存時にPartitioned属性を設定する方法

あるページをブラウザの開発者ツールで見た際に「cookie partitione ...

PHPにて指定した画像に対して、繰り返し透かし画像処理する方法
PHPにて指定した画像に対して、繰り返し透かし画像処理する方法

画像素材等のサイトで無料版の画像に対して「sample」等の透かし画像処理を行っ ...