Tengo una carpeta. Quiero poner todos los archivos de esta carpeta en una matriz y luego quiero repetirlos en un ciclo foreach.
¿Cuál es la mejor manera de hacer esto?
Gracias!Lista de contenido del directorio (php)
Respuesta
scandir es lo que estás buscando http://php.net/manual/en/function.scandir.php
<?php
$dir = '/tmp';
$files1 = scandir($dir);
print_r($files1);
?>
O utilice combinación de opendir y readdir http://php.net/manual/en/function.readdir.php
no hay nada más fácil que esto
http://ca3.php.net/manual/en/function.scandir.php
No se olvide de filtrar los directorios ocultos y de los padres (que comienzan con un punto) en Linux.
Editar: dwich respuesta es mejor. Dejaré esto solo por información.
<?php
if ($handle = opendir('/path/to/dir')) {
echo "Directory handle: $handle\n";
echo "Files:\n";
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}
closedir($handle);
}
?>
Espero que esto ayude.
-Alberto
Una Alternativa:
define('PATH', 'files/');
$filesArray = array();
$filesArray = glob(PATH . '*', GLOB_ONLYDIR);
Este método permite especificar/filtro de una por tipo de archivo. Por ejemplo,
define('PATH', 'files/');
define('FILE_TYPE', '.jpg');
$filesArray = array();
$filesArray = glob(PATH . '*' . FILE_TYPE, GLOB_ONLYDIR);
también se puede obtener el nombre de la ruta completa al archivo eliminando el parámetro 'GLOB_ONLYDIR'
Esto funciona para los archivos y carpetas en las subcarpetas también. Devuelve la lista de carpetas y la lista de archivos con su ruta.
$dir = __DIR__; //work only for this current dir
function listFolderContent($dir,$path=''){
$r = array();
$list = scandir($dir);
foreach ($list as $item) {
if($item!='.' && $item!='..'){
if(is_file($path.$item)){
$r['files'][] = $path.$item;
}elseif(is_dir($path.$item)){
$r['folders'][] = $path.$item;
$sub = listFolderContent($path.$item,$path.$item.'/');
if(isset($sub['files']) && count($sub['files'])>0)
$r['files'] = isset ($r['files'])?array_merge ($r['files'], $sub['files']):$sub['files'];
if(isset($sub['folders']) && count($sub['folders'])>0)
$r['folders'] = array_merge ($r['folders'], $sub['folders']);
}
}
}
return $r;
}
$list = listFolderContent($dir);
var_dump($list['files']);
var_dump($list['folders']);
- 1. Contenido del directorio en Haskell
- 2. PHP borrar el contenido de un directorio
- 3. NSFileManager eliminar contenido del directorio
- 4. ¿Estructura del árbol del directorio de la lista en python?
- 5. PHP ruta del directorio recursivo
- 6. Comportamiento raro de irb, listado del contenido del directorio actual
- 7. Lista de contenido del archivo de directorio en una plantilla de Django
- 8. Obtenga el contenido completo del directorio con AppleScript
- 9. Cómo mostrar el contenido del directorio del FTP remoto, recursivamente
- 10. Lista parcial del directorio FTP con comodines
- 11. Listado de contenido del directorio usando C y Windows
- 12. lista de PHP todos los archivos en el directorio
- 13. PHP Obtener el nombre del directorio actual
- 14. extrayendo contenido del pdf usando PHP
- 15. Obtenga el contenido de un directorio del lado del servidor en SAP ABAP
- 16. Lista de funciones del archivo PHP
- 17. Obtener una lista de recursos del directorio classpath
- 18. ¿Cómo puedo obtener una lista de usuarios del directorio activo?
- 19. Contenido seguro en el directorio de Documentos
- 20. Buscar el contenido de un directorio
- 21. Obtener el contenido del archivo a través de PHP cURL
- 22. Cómo eliminar el enlace 'Directorio principal' de la carpeta raíz en la lista del directorio Apache
- 23. Lista/vinculación a los contenidos del directorio en Rails
- 24. Autenticando en PHP usando LDAP a través del Directorio Activo
- 25. eliminar la estructura del directorio al comprimir archivos en PHP
- 26. ¿Cómo descargo contenido del administrador de contenido?
- 27. ¿Cómo puedo obtener el contenido del archivo cargado en php?
- 28. Extracción del contenido del archivo comprimido a un directorio específico en Python 2.7
- 29. Impedir que PHP acceda al directorio principal
- 30. ¿Cómo eliminar los contenidos del directorio de Documentos (y no del directorio de Documentos en sí)?
Creo que esto es mejor que 'readdir', incluso si solo es PHP 5. +1 por ejemplo. – Donovan