Код ниже создает список файлов и папок. Как создать дерево неограниченной вложенности?
public static function getFiles($startDir)
{
$files = [];
if($handle = opendir($startDir)) {
while (false !== ($i = readdir($handle))) {
if (is_dir($startDir . DIRECTORY_SEPARATOR . $i)) {
if (!in_array($i, ['.', '..', 'purity'])) {
$files[$i] = Purity::getFiles($startDir . DIRECTORY_SEPARATOR . $i);
}
} elseif (!in_array(pathinfo($i, PATHINFO_EXTENSION), ['dat', 'htaccess', 'txt'])) {
$files[] = $startDir . DIRECTORY_SEPARATOR . $i;
}
}
closedir($handle);
}
return $files;
}