2011-03-30 4 views
17

Doublons possibles:
Get the Files inside a directory
PHP: scandir() is too slowPHP moyen le plus efficace pour lister les fichiers dans un répertoire très grand

J'ai un répertoire avec des dizaines de milliers de fichiers dans et Je veux afficher une liste de ces fichiers sur une page. J'ai essayé de le faire avec scandir et cela prend une éternité. Quelle serait une méthode efficace pour y parvenir?

+1

Lequel de ces avez-vous essayé: http://stackoverflow.com/search?q=list+files+directory+php – Gordon

+1

Vous aussi lire [Mise à Glob Test] (http: // www.phparch.com/2010/04/28/putting-glob-to-the-test/) – Gordon

+0

J'ai essayé ces méthodes - elles fonctionnent bien avec un millier de fichiers, mais il faut un certain âge pour retourner des centaines de milliers des fichiers dans un tableau – John

Répondre

8

Je recommande d'utiliser DirectoryIterator ou RecursiveDirectoryIterator.

+7

Je recommande 'FilesystemIterator' sur' DirectoryIterator'. – salathe

+0

@salathe +1 :-) – eisberg

+0

@salathe +1 Voir aussi la question [Différence entre 'DirectoryIterator' et' FileSystemIterator'] (http://stackoverflow.com/questions/12532064/difference-between-directoryiterator-and-filesystemiterator) . Salutations ;-) – olibre

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

Le point entier est que cette méthode est trop lente –

+0

@ValRedchenko Je ne serais pas si sûr de cette déclaration: http://stackoverflow.com/questions/8692764/readdir-vs-scandir – topherg

Questions connexes