una nombre mostrar listar leer imagenes directorio desde carpeta archivos archivo abrir php file

nombre - Script PHP para recorrer todos los archivos en un directorio?



mostrar archivos de una carpeta en html (7)

Puede usar el DirectoryIterator . Ejemplo de php Manual:

<?php $dir = new DirectoryIterator(dirname(__FILE__)); foreach ($dir as $fileinfo) { if (!$fileinfo->isDot()) { var_dump($fileinfo->getFilename()); } } ?>

Estoy buscando un script PHP que recorra todos los archivos de un directorio para que pueda hacer cosas con el nombre del archivo, como el formato, imprimir o agregarlo a un enlace. Me gustaría poder ordenar los archivos por nombre, tipo o fecha de creación / agregado / modificación. (Piense en el "índice" de directorio de lujo). También me gustaría poder agregar exclusiones a la lista de archivos, como el script en sí u otros archivos del "sistema". (Como los . Y .. "directorios".)

Siendo que me gustaría poder modificar el guión, estoy más interesado en ver los documentos de PHP y aprender a escribir uno yo mismo. Dicho esto, si hay guiones, tutoriales y otras cosas, por favor avíseme.


Puede usar este código para recorrer un directorio recusivamente :

$path = "/home/myhome"; $rdi = new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::KEY_AS_PATHNAME); foreach (new RecursiveIteratorIterator($rdi, RecursiveIteratorIterator::SELF_FIRST) as $file => $info) { echo $file."/n"; }


Si no tiene acceso a la clase DirectoryIterator, intente esto:

<?php $path = "/path/to/files"; if ($handle = opendir($path)) { while (false !== ($file = readdir($handle))) { if (''.'' === $file) continue; if (''..'' === $file) continue; // do something with the file } closedir($handle); } ?>


También puede hacer uso de FilesystemIterator . Requiere incluso menos código que DirectoryIterator , y lo elimina automáticamente . y ..

$fileSystemIterator = new FilesystemIterator(''images''); $entries = array(); foreach ($fileSystemIterator as $fileInfo){ $entries[] = $fileInfo->getFilename(); } var_dump($entries); //OUTPUT object(FilesystemIterator)[1] array (size=14) 0 => string ''aa[1].jpg'' (length=9) 1 => string ''Chrysanthemum.jpg'' (length=17) 2 => string ''Desert.jpg'' (length=10) 3 => string ''giphy_billclinton_sad.gif'' (length=25) 4 => string ''giphy_shut_your.gif'' (length=19) 5 => string ''Hydrangeas.jpg'' (length=14) 6 => string ''Jellyfish.jpg'' (length=13) 7 => string ''Koala.jpg'' (length=9) 8 => string ''Lighthouse.jpg'' (length=14) 9 => string ''Penguins.jpg'' (length=12) 10 => string ''pnggrad16rgb.png'' (length=16) 11 => string ''pnggrad16rgba.png'' (length=17) 12 => string ''pnggradHDrgba.png'' (length=17) 13 => string ''Tulips.jpg'' (length=10)

Enlace: http://php.net/manual/en/class.filesystemiterator.php


Use la función scandir() :

<?php $directory = ''/path/to/files''; if (! is_dir($directory)) { exit(''Invalid diretory path''); } $files = array(); foreach (scandir($directory) as $file) { if (''.'' === $file) continue; if (''..'' === $file) continue; $files[] = $file; } var_dump($files); ?>


glob() tiene disposiciones para la clasificación y la coincidencia de patrones. Dado que el valor de retorno es una matriz, puede hacer casi todo lo demás que necesita.


$files = glob(''folder/*.{jpg,png,gif}'', GLOB_BRACE); foreach($files as $file) { //do your work here }