Olá, Vinicius!
Parece que você está tentando criar uma função recursiva para leitura de diretórios em PHP. A função que você compartilhou parece estar no caminho certo, porém, eu percebi que você está tentando ler um diretório sem verificar se o caminho atual é um diretório ou não.
Vamos ajustar um pouco a sua função:
function PesquisaRecursiva($dir, $spaces = 0) {
if ($handle = opendir($dir)) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
for ($i = 0; $i < $spaces * 4; $i++) {
echo "-";
}
echo "$entry\n";
if (is_dir($dir . '/' . $entry)) {
PesquisaRecursiva($dir . '/' . $entry, $spaces + 1);
}
}
}
closedir($handle);
}
}
Neste exemplo, a função PesquisaRecursiva
recebe como argumento o caminho do diretório que você quer ler ($dir
) e um parâmetro opcional para o número de espaços ($spaces
). A função opendir($dir)
abre o diretório e readdir($handle)
lê cada entrada. Se a entrada não for .
ou ..
(que representam o diretório atual e o diretório pai, respectivamente), a função imprime a entrada e verifica se é um diretório. Se for, ela chama a si mesma com o novo caminho do diretório, aumentando o número de espaços.
Espero ter ajudado e bons estudos!