この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
ディレクトリ内にあるファイル一覧の取得
ワイルドカード(*)が利用できるglob関数をして、ディレクトリ配下にあるファイル一覧を取得します。
使い方
「sample」フォルダ内にあるファイル一覧を取得する方法記載します。
1 2 3 4 5 |
foreach(glob('sample/*') as $file){ if(is_file($file)) { echo $file; } } |
サンプルプログラム
「使い方」よりも実用的な関数化したサンプルプログラムを記載します。
sample
┣ sample.txt
┣ test1.php
┗ test2.php
のファイル構成したフォルダをサンプルとして用意しています。
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
<?php /** * ファイルを検索する * @param $path 検索するフォルダへのパス * @param $ext ファイルの拡張子を絞り込みたい場合に利用します。 * @return ファイル一覧。ファイルが1つも無い場合は空配列を返却します。 */ function searchFile($path,$ext = "") { $fileList = []; //ファイルやディレクトリ自体が存在しない場合は空配列を返す if(!file_exists($path)) { return $fileList; } //末尾にスラッシュがある場合は取り除く $path = trim($path); if(strcmp('/', substr($path, -1)) == 0) { $path = substr($path,0,strlen($path)-1); } //検索するファイル名の調整 $ext = trim($ext); $extension = '*'; if(strlen($ext)>0) { $extension .= '.' . $ext; } //ファイルの一覧を取得する foreach(glob($path . '/' . $extension) as $file){ if(is_file($file)) { $fileList[] = $file; } } return $fileList; } //sampleフォルダ内のファイルを全て出力 var_dump(searchFile("./sample")); //sampleフォルダ内のphpファイルを全て出力 var_dump(searchFile("./sample", "php")); //sampleフォルダ内のtxtファイルを全て出力 var_dump(searchFile("./sample", "txt")); |
サンプルプログラムの出力結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[root@hostname]$ php analysis.php array(3) { [0]=> string(19) "./sample/sample.txt" [1]=> string(18) "./sample/test1.php" [2]=> string(18) "./sample/test2.php" } array(2) { [0]=> string(18) "./sample/test1.php" [1]=> string(18) "./sample/test2.php" } array(1) { [0]=> string(19) "./sample/sample.txt" } |
ウェブプログラミングについては下記の本も参考になるので、スキルアップにお役立てください。