Función PHP scandir()

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *