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マニュアルのglob関数のリンクです。
http://php.net/manual/ja/function.glob.php
関連の記事
PHP CSVファイルの読み込みと書き込み
PHP includeとrequireの違い(外部ファイル読み込み)
PHP ファイルをアップロードする(formでsubmit)
PHP ファイルの読み込みと書き込み(fgets/fwrite)