Código de PHP - listado de directorios y carpetas con función recursiva

Imágen de perfil

listado de directorios y carpetas con función recursivagráfica de visualizaciones


PHP

Publicado el 13 de Febrero del 2013 por Xavi
15.929 visualizaciones desde el 13 de Febrero del 2013. Una media de 84 por semana
Ejemplo para mostrar el contenido de una carpeta con todos los archivo y subcarpetas de manera recursiva.
Nos devuelve información sobre el tipo de archivo, permisos y tamaño de cada uno.

Versión 1

Publicado el 13 de Febrero del 2013gráfica de visualizaciones de la versión: Versión 1
15.930 visualizaciones desde el 13 de Febrero del 2013. Una media de 84 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<!DOCTYPE html>
<html>
<head>
    <style>
    * {font-size:12px;}
    .folder {clear:both;font-weight:bold;padding-top:10px;}
    .file   {clear:both;}
    .name {float:left;}
    .size {float:right; width:90px;text-align:right;}
    .perms {float:right; width:40px;text-align:center;}
    .mime {float:right;}
    </style>
</head>
 
<body>
<?php
/**
 * Función recursiva que va mostrando los archivos y carpetas
 * Tiene que recibir:
 *  $path => directorio donde buscar los archivos. Tiene que terminar con la
 *  barra de dividir... /directory/
 */
function showFiles($path)
{
    // asignamos a $directorio el objeto dir creado con la ruta
    $directorio = dir($path);
 
    // recorremos todos los archivos y carpetas
    echo "<div style='padding-left:20px;'>";
    while ($archivo = $directorio -> read())
    {
        if($archivo!="." && $archivo!="..")
        {
            if(is_dir($path.$archivo))
            {
                # Mostramos el nombre de la carpeta y los archivo contenidos
                # en la misma
                echo "<div class='folder'>";
                    echo get_infoFile($path,$archivo);
                echo "</div>";
 
                # llamamos nuevamente a la función con la nueva carpeta
                showFiles($path."/".$archivo."/");
            }else{
                // Mostramos el archivo
                echo "<div class='file'>";
                    echo get_infoFile($path,$archivo);
                echo "</div>";
            }
        }
    }
    echo "</div>";
    $directorio -> close();
}
 
/**
 * funcion que devuelve información en fotmato html sobre un archivo dado
 * Tiene que recibir el $path y $archivo
 */
function get_infoFile($path,$archivo)
{
    $finfo = finfo_open(FILEINFO_MIME_TYPE);
 
    $cadena="<div class='name'>".$archivo."</div>";
    $cadena.="<div class='size'>".number_format(filesize($path."/".$archivo)/1024,2,",",".")." Kb</div>";
    $cadena.="<div class='perms'>".substr(sprintf('%o', fileperms($path."/".$archivo)),-4)."</div>";
    $cadena.="<div class='mime'>".finfo_file($finfo,$path."/".$archivo)."</div>";
    return $cadena;
}
 
# iniciamos la función recursiva
showFiles("/home/carpeta/");
?>
</body>
</html>



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s2303