2011-03-30 33 views
17

posibles duplicados:
Get the Files inside a directory
PHP: scandir() is too slowPHP forma más eficiente para listar los archivos en un directorio muy grande

Tengo un directorio con decenas de miles de archivos en ella y Quiero mostrar una lista de estos archivos en una página. Intenté hacerlo con Scandir y lleva una eternidad. ¿Cuál sería un método eficiente para lograr esto?

+1

¿Cuál de estos has necesitado: http://stackoverflow.com/search?q=list+files+directory+php – Gordon

+1

También tendrá que leer [Poner Glob a Test] (http: // www.phparch.com/2010/04/28/putting-glob-to-the-the-test/) – Gordon

+0

probé esos métodos; funcionan bien con un millar de archivos, pero se necesita una edad para devolver cientos de miles de archivos en una matriz – John

Respuesta

8
+7

Recomiendo 'FilesystemIterator' sobre' DirectoryIterator'. – salathe

+0

@salathe +1 :-) – eisberg

+0

@salathe +1 Consulte también la pregunta [Diferencia entre 'DirectoryIterator' y' FileSystemIterator'] (http://stackoverflow.com/questions/12532064/difference-between-directoryiterator-and-filesystemiterator) . Cheers ;-) – olibre

0
$directory=opendir($_SERVER['DOCUMENT_ROOT'].'/directory/'); 
    while ($file = readdir($directory)) { 
    if($file!="." && $file!=".."){ 
     echo $file."<br>"; 
    } 
    } 
closedir($directory); 
+0

El punto es que este método es demasiado lento –

+0

@ValRedchenko No estaría tan seguro de esa afirmación: http://stackoverflow.com/questions/8692764/readdir-vs-scandir – topherg

Cuestiones relacionadas