PHP フォルダ/ファイルの一覧を取得(glob)

PHPのglob関数で、フォルダまたはファイルの一覧を取得するサンプルです。

確認環境
・PHP 7
・Windows 10

目次

サンプル ファイルの一覧を取得する
  拡張子を指定してファイルの一覧を取得
  フォルダをまたいでファイルの一覧を取得
  フォルダ(ディレクトリ)の一覧を取得する

ファイルの一覧を取得する

ファイルの一覧を取得するコードです。

<?php
$dir = 'd:/test1/';

$filelist = glob($dir . '*');

foreach ($filelist as $file) {
	if (is_file($file)) {
		print($file);
		echo nl2br("\n");
	}
}

2行目は、絶対パスを指定しています。
→相対パスでの指定も可能です。(例:$dir = '../../../test1/';)
4行目は、glob関数で指定先にあるフォルダとファイルを取得しています。
7行目は、is_file関数でファイルかどうか判定しています。

 

拡張子を指定してファイルの一覧を取得

拡張子を指定してファイルを取得するコードです。

<?php
$dir = 'd:/test1/';

$files = glob($dir . '{*.txt,*.csv}', GLOB_BRACE);

foreach ($files as $file) {
	if (is_file($file)) {
		print($file);
		echo nl2br("\n");
	}
}

4行目のGLOB_BRACEは、glob関数のフラグです。 {}の中の値と一致するか判定します。
→*.txtまたは*.csvと一致するものを抜き出します。
braceは、引き締めるという意味です。

 

フォルダをまたいでファイルの一覧を取得

フォルダをまたいで取得するコードです。

<?php
$dir = 'd:/test1/*/';

$files = glob($dir . '{*.txt,*.csv}', GLOB_BRACE);

foreach ($files as $file) {
	if (is_file($file)) {
		print($file);
		echo nl2br("\n");
	}
}

2行目は、パスにアスタリスク(*)を指定しています。
→d:/test1配下にあるフォルダの中の*.txtまたは*.csvと一致するものを抜き出すという意味になります。

 

フォルダ(ディレクトリ)の一覧を取得する

フォルダの一覧を取得するコードです。

<?php
$dir = 'd:/test1/';

$list1 = glob($dir . '*', GLOB_ONLYDIR);

foreach ($list1 as $dir1) {
	print($dir1);
	echo nl2br("\n");
}

4行目のGLOB_ONLYDIR は、glob関数のフラグです。フォルダのみ返します。

 

glob関数

関連の記事

PHP CSVファイルの読み込みと書き込み
PHP includeとrequireの違い(外部ファイル読み込み)
PHP ファイルをアップロードする(formでsubmit)
PHP ファイルの読み込みと書き込み(fgets/fwrite)

△上に戻る