Chose Language:
Author: Admin/Publisher | checked

PHP scandir

La función de PHP scandir nos devolverá un array enumerado de los archivos y directorios(carpetas) que se encuentran dentro de la ruta al directorio especificado.

Description / Descripción
scandir(string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, ?resource $context = null): array|false
Sintaxis / Sintax
$folderContent= scandir($directory,(optional)$sorting__order,(optional)$context)

Parametros

$directory – contiene la ruta del directorio que se quiere escanear

$sorting_order – especifica el orden en que será devuelto el array, el cual puede tener 3 formas de ser devuelto:

  • Ordenado ascendente(default)
  • Ordenado descendente (se debe usar la constante SCANDIR_SORT_DESCENDING)
  • Sin orden (se debe usar la constante SCANDIR_SORT_NONE)

$context – El valor del parámetro context debe ser un recurso de contexto creado con la función stream_context_create().

Este recurso de contexto contiene opciones y parámetros que definen cómo se llevará a cabo la exploración de directorios. Estas opciones pueden incluir configuraciones de contexto relacionadas con permisos de archivos, manejo de errores, filtros de archivos, entre otros.

En general, este parámetro no se utiliza a menos que necesitemos controlar el stream(secuencia de datos que se transfiere de una fuente a un destino de manera continua)

Retornos

Retorna un array indexado con los nombres de archivos y directorios enumerado si este tuvo éxito

Retornará false en caso de fallo, si el directorio dado no es un directorio retornará false y un error E_WARNING se generará.

Ejemplos de PHP scandir

El siguiente ejemplo es el que se menciona en php.net:

simple scandisk sample
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, SCANDIR_SORT_DESCENDING);

print_r($files1);
print_r($files2);
Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Los siguientes ejemplos no han sido chequeados, pero cumplen con lo del parámetro $context así que los he dejado como guía.

Para ilustrar veamos un ejemplo de como hacerlo para un Contexto HTTP: Aqui estariamos haciendo scandir a un directorio que necesita una autorización que utiliza un Bearer Token

HTTP context example
$httpContext = stream_context_create([
    'http' => [
        'method' => 'GET',
        'header' => 'Authorization: Bearer your_token',
    ],
]);
$files = scandir($directory, 0, $httpContext);

Contexto de archivo: Esto realmente sería nuestro default

file context
$fileContext = stream_context_create([
    'file' => [
        'mode' => 'r',
    ],
]);
$files = scandir($directory, 0, $fileContext);

Contexto SSL (para conexiones seguras):

SSL context
$sslContext = stream_context_create([
    'ssl' => [
        'verify_peer' => true,
        'verify_peer_name' => true,
    ],
]);
$files = scandir($directory, 0, $sslContext);
Category: php
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category