PHP - Guardar directorio y archivos en array multidimensional

 
Vista:
sin imagen de perfil
Val: 44
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Guardar directorio y archivos en array multidimensional

Publicado por Nicolás (24 intervenciones) el 08/11/2016 21:03:58
Hola. Estoy trabajando en un código que me permita guardar directorios y archivos en un array multidimensional. La idea es guardar los subdirectorios y archivos en un array a través de una función opendir como $array [$is_dir] [$is_file]. Tengo un código preliminar:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<!DOCTYPE html>
<html>
<head>
    <title>Dir en array</title>
    <meta charset="utf-8">
</head>
    <body>
        <?php
        //función para obtener el nombre de las carpetas y los archivos en array multidimensional
        function dirToArray($dir) {
 
            //creo un array
            $listDir = array();
 
            //abro los directorios contenidos en $dir
            if($handler = opendir($dir)) {
 
                //leo todos los elementos contenidos 
                while (($file = readdir($handler)) !== FALSE) {
 
                    //verifico que hayan elementos
                    if ($file != "." && $file != "..") {
 
                        /*si los elementos son archivos, guardo los elementos 
                        en algún indice (dimensión) del array*/
                        if(is_file($dir."/".$file)) {
                            $listDir[] = $file;
 
                        /*si los elementos son directorios, guardo los elementos 
                        en otro índice o dimensión, repitiendo hasta que hayan elementos*/
                        }elseif(is_dir($dir."/".$file)){
                            $listDir[$file] = dirToArray ($dir."/".$file);
                        }
                    }
                }
                closedir($handler);
            }
            return $listDir;
        }
 
        $dir = "xxx/";
        dirToArray($dir);
        echo $listDir[2][1];
 
        ?>
    </body>
</html>

pero me arroja este error:
Notice: Undefined variable: listDir in C:\xxx.php

Gracias por vuestra ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Guardar directorio y archivos en array multidimensional

Publicado por Yamil Bracho (888 intervenciones) el 08/11/2016 21:11:46
$listDir es local a la funcion dirToArray. cambia a

$dir = "xxx/";
$listDir = dirToArray($dir);
echo $listDir[2][1];
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 44
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Guardar directorio y archivos en array multidimensional

Publicado por Nicolás (24 intervenciones) el 09/11/2016 00:09:21
Muchas gracias. Ahora sí.
Una consulta más. Si tengo un directorio img/, con este código:
1
2
3
$dir = "img/";
$listDir = dirToArray($dir);
echo $dir . $listDir[1][2] . "<br>";
obtengo img/xxx.jpg

Porqué no puedo ver este archivo en el navegador con:
1
2
3
$dir = "img/";
$listDir = dirToArray($dir);
echo '<img src="'.$dir.$listDir[1][2] .'">'."<br/>";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Guardar directorio y archivos en array multidimensional

Publicado por Carlos (18 intervenciones) el 09/11/2016 00:20:33
Hola, puedes presionar f12 y mostrar lo que dice la consola del navegador?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 44
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Guardar directorio y archivos en array multidimensional

Publicado por Nicolás (24 intervenciones) el 09/11/2016 01:05:52
Acá adjunto una captura
captura
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 44
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Guardar directorio y archivos en array multidimensional

Publicado por Nicolás (24 intervenciones) el 10/11/2016 17:01:46
Ahora funciona. Faltaba un directorio del array multidimensional. Gracias de todas maneras.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar