"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como determinar com eficiência se um diretório está vazio em PHP?

Como determinar com eficiência se um diretório está vazio em PHP?

Publicado em 2024-11-12
Navegar:565

How to Efficiently Determine if a Directory is Empty in PHP?

Verificando o vazio do diretório em PHP

Para verificar se um diretório está vazio ou não, utilizar as funções do PHP pode ser eficaz. No entanto, é crucial selecionar a função apropriada com base em requisitos específicos.

Abordagem e problema original

O script fornecido usa a função glob para verificar um diretório. Quando não houver arquivos presentes, deverá indicar “vazio”. No entanto, o script afirma incorretamente que o diretório está vazio, apesar da presença de arquivos e vice-versa.

Implementação aprimorada

Para resolver esse problema, considere usar a função scandir em vez de glob, pois glob pode ignorar arquivos ocultos. O código aprimorado abaixo incorpora esta alteração:

Solução ideal

Para maior eficiência, existe uma solução mais otimizada:

function dir_is_empty($dir) {
  $handle = opendir($dir);
  while (false !== ($entry = readdir($handle))) {
    if ($entry != "." && $entry != "..") {
      closedir($handle);
      return false;
    }
  }
  closedir($handle);
  return true;
}
?>

Esta função verifica o identificador do diretório e retorna diretamente verdadeiro ou falso em vez de contar os arquivos.

Recomendação sobre convenção de nomenclatura

Além disso, é geralmente recomendado usar valores booleanos (verdadeiro ou falso) em vez de valores de string ("Vazio" ou "Não vazio") em estruturas de controle para evitar confusão.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3