ホームページ >バックエンド開発 >PHPチュートリアル >特定のディレクトリを除外するための php scandir() 関数の使用例
scandir() は、指定されたディレクトリ内のファイルとディレクトリの 配列を返します。 成功した場合は、ファイルとディレクトリの配列を返します。失敗した場合は FALSE を返します。 directory がディレクトリではない場合、E_WARNING レベルのエラーがスローされます。
構文
scandir(directory,sorting_order,context);
パラメータ | 説明 |
---|---|
ディレクトリ | 必須。スキャンするディレクトリを指定します。 |
sorting_order |
オプション。並べ替えの順序を指定します。デフォルトは 0 で、アルファベットの昇順を示します。 SCANDIR_SORT_DESCENDING または 1 に設定すると、アルファベットの降順で並べ替えることを意味します。 SCANDIR_SORT_NONE に設定すると、並べ替えられていない結果が返されます。 |
コンテキスト | オプション。ディレクトリハンドルの環境を指定します。 context は、ディレクトリ ストリームの動作を変更するオプションのセットです。 |
例:コードは次のとおりです:
<?php print_r(scandir('test_directory')); ?>
出力は次のとおりです:
Array ( [0]=>. [1]=>.. [2]=>1.txt [3]=>2.txt )
ほとんどの場合、次のようにディレクトリのファイルリスト配列のみが必要です:
Array ( [0]=>1.txt [1]=>2.txt )
一般的には"." または ".." を除く配列項目は解決されます: コードは次のとおりです:
<?php functionfind_all_files($dir) { $root = scandir($dir); foreach ($rootas$value) { if($value === '.' || $value === '..'){ continue ; } if(is_file("$dir/$value")){ $result[] = "$dir/$value"; continue; } foreach(find_all_files("$dir/$value")as$value) { $result[] = $value; } } return $result; } ?>
もう 1 つの方法は、array_diff 関数 を使用して、scandir 関数の実行によって取得された配列を削除することです: コードは次のとおりです:
<?php $directory='/path/to/my/directory'; $scanned_directory=array_diff(scandir($directory),array('..','.')); ?>
通常、ディレクトリのアクセス許可を制限する svn ファイル、または .htaccess およびその他のファイルのコード管理が発生します。したがって、array_diff 関数を使用してフィルタリングする方が便利です。
以上が特定のディレクトリを除外するための php scandir() 関数の使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。