En este artículo, veremos cómo obtener todos los archivos del directorio actual o especificado usando la función scandir() en PHP. La función scandir() en PHP es una función incorporada que se usa para devolver una array de archivos y directorios del directorio especificado. La función scandir() enumera los archivos y directorios que están presentes dentro de una ruta específica. El directorio, el comportamiento de la secuencia y el orden de clasificación de los archivos y directorios se pasan como un parámetro a la función scandir() y devuelve una array de nombres de archivo en caso de éxito o falso en caso de falla.
Sintaxis:
scandir(directory, sorting_order, context);
Parámetros: La función scandir() en PHP acepta 3 parámetros que se enumeran a continuación:
- directorio : Es un parámetro obligatorio que especifica la ruta.
- sorting_order : Es un parámetro opcional que especifica el orden de clasificación. El orden alfabético ascendente (0) es el orden de clasificación predeterminado. Se puede establecer en SCANDIR_SORT_DESCENDING o 1 para ordenar en orden alfabético descendente, o SCANDIR_SORT_NONE para devolver el resultado sin ordenar.
- contexto : es un parámetro opcional que especifica el comportamiento de la transmisión.
Valor devuelto: devuelve una array de nombres de archivo en caso de éxito o falso en caso de error.
Errores y excepciones:
- La función scandir() arroja un error de nivel E_WARNING si el directorio especificado no es un directorio.
- Hacer un scandir recursivo en un directorio que tiene muchos archivos probablemente ralentizará su aplicación o provocará un gran aumento en el consumo de RAM debido al gran tamaño de la array generada.
Enfoque: para obtener todos los archivos de un directorio en particular, debemos especificar la ruta completa del archivo y almacenar el valor de la ruta en la variable como $mydir. Luego use la función scandir() que buscará los archivos en un directorio actual o específico y devolverá una array de archivos y directorios. De forma predeterminada, se alineará en orden alfabético ascendente y 0 como orden de clasificación predeterminado, 1 para ordenar en orden alfabético descendente y SCANDIR_SORT_NONE para orden no ordenado.
Ejemplo 1: El siguiente ejemplo ilustra la función scandir() que escaneará los archivos y el valor devuelto estará en orden ascendente.
PHP
<?php // Specifying directory $mydir = '/docs'; // Scanning files in a given directory in ascending order $myfiles = scandir($mydir); // Displaying the files in the directory print_r($myfiles); ?>
Producción:
( [0] => . [1] => .. [2] => aboutus.php [3] => contact.php [4] => index.php [5] => terms.php )
Ejemplo 2: Este ejemplo ilustra la función scandir() que escaneará los archivos y el valor devuelto estará en orden descendente.
PHP
<?php // Specifying directory $mydir = '/docs'; // Scanning files in a given directory in descending order $myfiles = scandir($mydir, 1); // Displaying the files in the directory print_r($myfiles); ?>
Producción:
Array ( [0] => terms.php [1] => index.php [2] => contact.php [3] => aboutus.php [4] => .. [5] => . )
Ejemplo 3: Este ejemplo ilustra la función scandir() que escaneará los archivos y el valor devuelto estará en el orden no ordenado.
PHP
<?php // Specifying directory $mydir = '/docs'; // Scanning files in a given directory in unsorted order $myfiles = scandir($mydir, SCANDIR_SORT_NONE); // Displaying the files in the directory print_r($myfiles); ?>
Producción:
Array ( [0] => . [1] => .. [2] => contact.php [3] => terms.php [4] => index.php [5] => aboutus.php )
Referencia: http://php.net/manual/en/function.scandir.php
Publicación traducida automáticamente
Artículo escrito por Shubrodeep Banerjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA