PHPでフォルダ内のファイルを全て取得する方法

Pocket

どの言語でもフォルダ内のファイルを全て取得する場面はあるようです。
PHPの場合はglobという関数を使うと便利です。
これを使って特定のフォルダ配下の全てのフォルダ、ファイルを取得する方法を考えました。下の階層のフォルダ、ファイルも取得します。

function get_files($dir){
  $files = glob($dir . "/*");
  $results = $files;
  foreach($files as $file){
    if(is_dir($file)){
      $nexts = get_files($file);
      $results = array_merge($results, $nexts);
    }
  }
  sort($results);
  return $results;
}

例えば「food」というフォルダ内のファイルを全て取得するには次のようにします。

$results = get_files("./food");

例えば次のようになります。

Array
(
    [0] => ./food/fruit
    [1] => ./food/fruit/apple
    [2] => ./food/fruit/apple/fuji.txt
    [3] => ./food/fruit/apple/kogyoku.txt
    [4] => ./food/sweet
    [5] => ./food/sweet/candy.txt
    [6] => ./food/sweet/choco.txt
)

関連記事

[ 2018年10月27日 | カテゴリー: PHP | タグ: , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報