PHPでディレクトリやファイルを繰り返し処理する方法は何ですか?
PHPのscandir()関数と再帰的な方法を使用して、ディレクトリとファイルを走査することができます。
まず、scandir()関数を使ってディレクトリ内のすべてのファイルとサブディレクトリの名前を取得します。次に、返される配列をループして、各要素がファイルかディレクトリかをチェックします。
もしディレクトリであれば、再帰呼び出しを使用してそのサブディレクトリに対して同じ処理を行います。ファイルであれば、それに対応する処理を行います。
以下はサンプルコードです。
function traverseDirectory($dir) {
$files = scandir($dir); // 获取目录中的所有文件和子目录的名称
foreach ($files as $file) {
if ($file != '.' && $file != '..') { // 排除当前目录和上级目录
$path = $dir . '/' . $file; // 文件或子目录的路径
if (is_dir($path)) { // 如果是目录,则递归遍历子目录
traverseDirectory($path);
} else { // 如果是文件,则进行相应的处理
echo $path . PHP_EOL;
// 在此处可以对文件进行操作,如读取内容、复制、删除等
}
}
}
}
// 调用遍历函数
$directory = 'path/to/directory'; // 要遍历的目录路径
traverseDirectory($directory);
上記の例では、traverseDirectory()関数はディレクトリパスを引数として受け取り、scandir()関数を使用してそのディレクトリ内のすべてのファイルとサブディレクトリの名前を取得します。次に、返された配列をループして、要素がファイルかディレクトリかを確認し、それに応じて処理を行います。ディレクトリの場合は、再帰的に呼び出しを行い、ファイルの場合は対応する操作を実行します。
実際のニーズに応じて、ディレクトリパスとファイル処理部分のコードを修正してください。