readdir 函数是 PHP 中用于读取目录内容的函数。要使用 readdir 遍历目录树,你需要递归地遍历每个目录并读取其内容。下面是一个简单的示例:
<?php
function traverseDirectoryTree($directory) {
if (!is_dir($directory)) {
return;
}
$dirHandle = opendir($directory);
if (!$dirHandle) {
return;
}
while (($file = readdir($dirHandle)) !== false) {
if ($file === '.' || $file === '..') {
continue;
}
$filePath = $directory . DIRECTORY_SEPARATOR . $file;
if (is_dir($filePath)) {
traverseDirectoryTree($filePath);
} else {
echo "File: " . $filePath . PHP_EOL;
}
}
closedir($dirHandle);
}
$rootDirectory = '/path/to/your/directory';
traverseDirectoryTree($rootDirectory);
?>
这个示例中的 traverseDirectoryTree 函数接受一个目录路径作为参数。首先,它检查给定的路径是否是一个目录。如果不是,函数直接返回。接下来,使用 opendir 打开目录,并使用 readdir 读取目录中的每个文件和子目录。
对于每个文件和子目录,我们检查它是否是当前目录(.)或上级目录(..)。如果是,我们跳过它们。然后,我们构建文件的完整路径,并检查它是否是一个目录。如果是目录,我们递归地调用 traverseDirectoryTree 函数。如果不是目录,我们输出文件的路径。
最后,使用 closedir 关闭目录句柄。
请注意,这个示例仅用于演示目的,实际应用中可能需要根据需求进行调整。例如,你可以将文件路径添加到数组中,而不是直接输出它们,或者根据需要对文件进行筛选。