Copy & Paste Engineer

【PHP】サブフォルダ内のファイルをまとめて取得する

PHP サブフォルダ内のファイルを纏めて取得する

PHP サブフォルダ内のファイルをまとめて取得する。

ファイルの取得

以下の2つを使用します。

<?php
use FilesystemIterator;
use RecursiveDirectoryIterator;
use RecursiveIteratorIterator;

function listFiles($dir){
    $iterator = new RecursiveIteratorIterator(
        new RecursiveDirectoryIterator(
            $dir,
            FilesystemIterator::SKIP_DOTS
            | FilesystemIterator::KEY_AS_PATHNAME
            | FilesystemIterator::CURRENT_AS_FILEINFO
        ), RecursiveIteratorIterator::LEAVES_ONLY
    );

    $list = [];
    foreach($iterator as $pathname => $info){
        $list[] = $pathname;
    }
    return $list;
}

//検索するディレクトリ
$dir = __DIR__;
var_dump(listFiles($dir));

実行結果

array(4) {
  [0]=>
  string(9) "/hoge.txt"
  [1]=>
  string(14) "/hoge/hoge.txt"
  [2]=>
  string(9) "/piyo.txt"
  [3]=>
  string(14) "/piyo/piyo.txt"
}