una todas mostrar listar listado las imagenes directorio desde descargar carpeta archivos abrir php file directory filenames

php - listar - mostrar todas las imagenes de una carpeta html



Obtener los nombres de todos los archivos en un directorio con PHP (15)

Aquí hay un ejemplo más avanzado para mostrar todos los archivos en una carpeta

Por alguna razón, sigo obteniendo un ''1'' para los nombres de archivo con este código:

if (is_dir($log_directory)) { if ($handle = opendir($log_directory)) { while($file = readdir($handle) !== FALSE) { $results_array[] = $file; } closedir($handle); } }

Cuando repito cada elemento en $ results_array, obtengo un montón de ''1'', no el nombre del archivo. ¿Cómo obtengo el nombre de los archivos?


Código recursivo para explorar todo el archivo contenido en un directorio (''$ path'' contiene la ruta del directorio):

function explore_directory($path) { $scans = scandir($path); foreach($scans as $scan) { $new_path = $path.$scan; if(is_dir($new_path)) { $new_path = $new_path."/"; explore_directory($new_path); } else // A file { /* Body of code */ } } }


Como la respuesta aceptada tiene dos deficiencias importantes, estoy publicando la respuesta mejorada para aquellos recién llegados que están buscando una respuesta correcta:

foreach (array_filter(glob(''/Path/To/*''), ''is_file'') as $file) { // Do something with $file }

  1. Es necesario is_file resultados de la función del globe con is_file , porque también puede devolver algunos directorios.
  2. No todos los archivos tienen a . en sus nombres, por lo que el patrón */* es una mierda en general.

En algunos sistemas operativos, obtienes . .. y .DS_Store , bueno, no podemos usarlos así que vamos a esconderlos.

Primero comience a obtener toda la información sobre los archivos, utilizando scandir()

// Folder where you want to get all files names from $dir = "uploads/"; /* Hide this */ $hideName = array(''.'',''..'',''.DS_Store''); // Sort in ascending order - this is default $files = scandir($dir); /* While this to there no more files are */ foreach($files as $filename) { if(!in_array($filename, $hideName)){ /* echo the name of the files */ echo "$filename"{<br>$filename}";<br>"; } }


Estilo SPL :

foreach (new DirectoryIterator(__DIR__) as $file) { if ($file->isFile()) { print $file->getFilename() . "/n"; } }

Compruebe las clases DirectoryIterator y SplFileInfo para ver la lista de métodos disponibles que puede usar.


No se moleste con abrir / leer y usar glob lugar:

foreach(glob($log_directory.''/*.*'') as $file) { ... }


Otra forma de enumerar directorios y archivos sería usar el RecursiveTreeIterator responde aquí: https://.com/a/37548504/2032235 .

Puede encontrar una explicación detallada de RecursiveIteratorIterator e iteradores en PHP aquí: https://.com/a/12236744/2032235


Puede probar la función scandir(Path) . es rápido y fácil de implementar

Sintaxis:

$files = scandir("somePath");

Esta función devuelve una lista de archivos en una matriz.

para ver el resultado, puedes probar

var_dump($files);

O

foreach($files as $file) { echo $file."< br>"; }


Se debe a la precidencia del operador. Intenta cambiarlo a:

while(($file = readdir($handle)) !== FALSE) { $results_array[] = $file; } closedir($handle);


Solo usa glob(''*'') . Aquí hay glob


Solo uso este código:

<?php $directory = "Images"; echo "<div id=''images''><p>$directory ...<p>"; $Files = glob("Images/S*.jpg"); foreach ($Files as $file) { echo "$file<br>"; } echo "</div>"; ?>


Tengo un código más pequeño que hace esto:

$path = "Pending2Post/"; $files = scandir($path); foreach ($files as &$value) { echo "<a href=''http://localhost/".$value."'' target=''_black'' >".$value."</a><br/>"; }



glob y FilesystemIterator ejemplos:

/* * glob() examples */ // get the array of full paths $result = glob( ''path/*'' ); // get the array of file names $result = array_map( function( $item ) { return basename( $item ); }, glob( ''path/*'' ) ); /* * FilesystemIterator examples */ // get the array of file names by using FilesystemIterator and array_map() $result = array_map( function( $item ) { // $item: SplFileInfo object return $item->getFilename(); }, iterator_to_array( new FilesystemIterator( ''path'' ), false ) ); // get the array of file names by using FilesystemIterator and iterator_apply() filter $it = new FilesystemIterator( ''path'' ); iterator_apply( $it, function( $item, &$result ) { // $item: FilesystemIterator object that points to current element $result[] = (string) $item; // The function must return TRUE in order to continue iterating return true; }, array( $it, &$result ) );


$file = readdir($handle) rodear $file = readdir($handle) con paréntesis.

Aqui tienes:

$log_directory = ''your_dir_name_here''; $results_array = array(); if (is_dir($log_directory)) { if ($handle = opendir($log_directory)) { //Notice the parentheses I added: while(($file = readdir($handle)) !== FALSE) { $results_array[] = $file; } closedir($handle); } } //Output findings foreach($results_array as $value) { echo $value . ''<br />''; }