una recorrer por only nombre gestor funcion fotos files carpeta buscar archivos php

por - recorrer archivos de una carpeta php



PHP readdir() no devuelve archivos en orden alfabético (5)

Estoy leyendo un directorio con algunas imágenes y tal usando una implementación bastante simple de readdir () como la siguiente:

if ($handle = opendir($path)) { while (false !== ($szFilename = readdir($handle))) { if ($szFilename[0] !== ''.'') { if (is_file($path.$szFilename)) { // do stuff } } } }

El problema que estoy teniendo es que los archivos no se leen en orden alfabético como los documentos para el estado readdir ():

Devuelve el nombre del archivo del siguiente archivo del directorio. Los nombres de archivo se devuelven en el orden en que el sistema de archivos los almacena.

Otra cosa extraña es que, en el servidor de prueba local, el mismo código funciona muy bien. Esto se ejecuta en un servidor utilizando la pila LAMP en ambos casos.

Sé que puedo construir una matriz y simplemente ordenarla, pero me preguntaba si me estaba perdiendo algo en lo que estaba haciendo.


Estás malinterpretando los documentos:

Los nombres de archivo se devuelven en el orden en que el sistema de archivos los almacena.

significa que los archivos se devuelven en el orden en que se crearon.


Orden alfabético :: Creo que leyó mal el fragmento que citó ...

Devuelve el nombre del archivo del siguiente archivo del directorio. Los nombres de archivo se devuelven en el orden en que el sistema de archivos los almacena.

El hecho de que ''ls'' mostraría los archivos en orden alfabético (normalmente) no significa que así sea como se almacenan en el sistema de archivos. PHP se está comportando como una especificación, me temo.

Es posible que desee considerar el uso de scandir como base para sus esfuerzos, si la ordenación alfabética es imprescindible. :)


supongo que los documentos están bastante claros aquí.

orden en que se almacenan en el sistema de archivos

no es lo mismo que orden alfabético


Puede copiar todos los nombres de archivo en una matriz y luego usar

<?php sort($filesArray); ?>


Hay un par que puedes usar:

Orden alfabético:

<?php sort($handle); ?>

Reverse Alphabetical Sort:

<?php rsort($handle); ?>