Contar archivos en un directorio en PHP

Subodh Poudel 20 junio 2023
  1. Use la clase FilesystemIterator para contar los archivos en un directorio en PHP
  2. Use las funciones glob() y count() para contar los archivos en un directorio en PHP
  3. Use las funciones scandir() y count() para contar los archivos en un directorio en PHP
Contar archivos en un directorio en PHP

Este artículo presentará y demostrará algunos métodos para contar los archivos en un directorio en PHP.

Use la clase FilesystemIterator para contar los archivos en un directorio en PHP

PHP proporciona la clase FilesystemIterator, una forma elegante de contar los archivos en un directorio. La clase contiene muchas funciones y constantes que realizan varias operaciones para iterar un sistema de archivos.

El uso de la función iterator_count() cuenta el número de elementos en el iterador.

Consideremos la siguiente estructura de directorios.

myDir
├── abc.html
├── abc.jpeg
├── abc.php
└── abc.png

En primer lugar, cree una variable $iterator y almacene una instancia de FilesystemIterator(). Establezca el primer parámetro como __DIR__ y use FilesystemIterator::SKIP_DOTS como segundo parámetro en el constructor.

El __DIR__ representa el directorio actual donde se encuentra el script, y el segundo parámetro es una bandera que salta . y .. que existen en un directorio. La variable $iterator contiene el iterador filesystem para el directorio actual.

Se puede iterar para obtener información como nombres de archivo, número de archivos, etc.

A continuación, utilice la función iterator_count() para imprimir el número de $iterator en el directorio.

Código de ejemplo:

$iterator = new FilesystemIterator(__DIR__, FilesystemIterator::SKIP_DOTS);
echo "There are ". iterator_count($iterator). " files in the directory";

Producción :

There are 4 files in the directory

Por lo tanto, podemos usar la clase FilesystemIterator() para contar los archivos en un directorio.

Use las funciones glob() y count() para contar los archivos en un directorio en PHP

Podemos usar las funciones glob() y count() para obtener el número de archivos en un directorio. La función glob() proporciona una matriz de archivos y carpetas que coinciden con el patrón especificado.

Podemos obtener todos los archivos dentro del directorio usando *. A continuación, podemos usar la función contar() para obtener la cantidad de elementos en esa matriz.

Por ejemplo, cree una variable $ruta y almacene la ruta exacta de un directorio cuyos archivos se van a contar. A continuación, utilice la función glob() para la variable $ruta y concatene la variable con /*.

Como resultado, se crea una matriz de todos los archivos dentro de myDir. Finalmente, utilice la función count() sobre el resultado de la función glob().

Por lo tanto, se puede encontrar la cantidad de archivos dentro del directorio myDir. El siguiente ejemplo de código representa la estructura de archivos utilizada en el primer ejemplo.

Código de ejemplo:

$path =$_SERVER['DOCUMENT_ROOT']."/myDir";
$num = count(glob($path . "/*"));
echo $num;

Producción :

4

Use las funciones scandir() y count() para contar los archivos en un directorio en PHP

Este método es un enfoque similar al segundo método. La única diferencia aquí es que usamos la función scandir() en lugar de la función glob().

Podemos proporcionar la ruta del directorio como parámetro para la función scandir(). La función devuelve una matriz con todo el contenido dentro del directorio, incluido el . y ...

A continuación, podemos usar la función contar() para obtener el número de contenidos dentro del directorio. Finalmente, la parte importante es restar 2 del resultado de la función contar() para eliminar la cuenta de . y ...

Por lo tanto, podemos obtener el número exacto de archivos dentro de un directorio.

Código de ejemplo:

$path =$_SERVER['DOCUMENT_ROOT']."/myDir";
$num = count(scandir($path))-2;
echo "there are $num files in the directory";

Producción :

there are 4 files in the directory
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Artículo relacionado - PHP Directory