PHPでフォルダ内のファイルを全て取得する方法
どの言語でもフォルダ内のファイルを全て取得する場面はあるようです。
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;
}
$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
)
(
[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 | タグ: glob , ファイル ]
« モバイルフレンドリーにする最も簡単な方法 | iTunesで存在しない曲を全て削除する方法 »
コメントを残す