"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ## ¿Cómo determinar de manera confiable si un directorio está vacío en PHP?

## ¿Cómo determinar de manera confiable si un directorio está vacío en PHP?

Publicado el 2024-11-08
Navegar:507

## How to Reliably Determine if a Directory is Empty in PHP?

Verificación del directorio vacío en PHP

Determinar si un directorio está vacío puede ser una tarea vital en varios escenarios de desarrollo web. Sin embargo, ciertos scripts pueden encontrar problemas donde el resultado sugiere incorrectamente un directorio vacío o no vacío a pesar de la presencia o ausencia de archivos dentro.

Script original

El script proporcionado El script intenta verificar si el directorio está vacío usando el siguiente código:

$q = (count(glob("$dir/*")) === 0) ? 'Empty' : 'Not empty';

Sin embargo, es posible que la función glob() no detecte archivos ocultos de Unix, lo que genera resultados inexactos.

Solución mejorada

Para resolver este problema, recomendamos utilizar la función scandir() en lugar de glob(), ya que puede detectar archivos tanto normales como ocultos. Además, para mejorar la eficiencia, podemos usar una función personalizada para verificar el vacío más rápidamente:

function is_dir_empty($dir) {
  return (count(scandir($dir)) == 2);
}

Esta función verifica si el directorio contiene solo dos entradas: el directorio actual (".") y el directorio principal (".."), lo que indica un directorio vacío.

Mejores prácticas

Como práctica recomendada, se recomienda utilizar valores booleanos directamente en las estructuras de control en lugar de depender de cadenas de texto como "Vacío" o "No vacío". Las expresiones booleanas proporcionan una forma más concisa y precisa de determinar condiciones vacías o no vacías.

Por ejemplo, en lugar de usar:

if ($q == "Empty") {
  // ...
}

Puedes usar directamente:

if (is_dir_empty($dir)) {
  // ...
}
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3