1. 概要
ファイル一覧を取得する方法にはopendir()〜readdir()を使う方法とglob()を使う方法があります。
1-1. opendir()〜readdir()
- 書き方がちょっとめんどい
- 実行速度が速い
- ファイル名だけ取得される
1-2. glob()
- 書き方がシンプル
- 実行速度が遅い
- ファイルがフルパスで取得される
- ファイルパターンを指定できる
2. スクリプト
2-1. opendir()〜readdir()
指定したパスの下の*.txtのファイル一覧を取得する。
記述例
// /path*.txtのファイル一覧を取得する
if ($handle = opendir('/path')) {
while (false !== ($file = readdir($handle))) {
if ('txt' != pathinfo($file, PATHINFO_EXTENSION)) continue;
echo "$file\n";
}
closedir($handle);
}
実行例
$ php -a
Interactive shell
php > if ($handle = opendir('/home/hoge')) {
php > while (false !== ($file = readdir($handle))) {
php > if ('txt' != pathinfo($file, PATHINFO_EXTENSION)) continue;
php > echo "$file\n";
php > }
php > closedir($handle);
php > }
ファイル1.txt
ファイル2.txt
ファイル3.txt
ファイル4.txt
2-2. glob()
指定したパスの下の*.txtのファイル一覧を取得する。
記述例
// /path*.txtのファイル一覧を取得する
foreach (glob("/path/*.txt") as $file) {
echo "$file\n";
}
実行例
$ php -a
Interactive shell
php > foreach (glob("/home/hoge/*.txt") as $file) {
php > echo "$file\n";
php > }
/home/hoge/ファイル1.txt
/home/hoge/ファイル2.txt
/home/hoge/ファイル3.txt
/home/hoge/ファイル4.txt