JavaScriptを有効にしてください

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

 ·  ☕ 1 分で読めます

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

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

ファイルの取得

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?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));

実行結果

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
array(4) {
  [0]=>
  string(9) "/hoge.txt"
  [1]=>
  string(14) "/hoge/hoge.txt"
  [2]=>
  string(9) "/piyo.txt"
  [3]=>
  string(14) "/piyo/piyo.txt"
}
  • FilesystemIterator::SKIP_DOTS., .. をスキップします。
  • FilesystemIterator::KEY_AS_PATHNAME で 配列の key にパス名が入るようになります。
  • FilesystemIterator::CURRENT_AS_FILEINFO を設定すると $infoSplFileInfoが入ります。
    そうすると $info->getATime() を行うとファイルの最終アクセス時刻を取得することなど出来ます。
共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer