Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2012, 17:08
nh2006
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 5 meses
Puntos: 3
Generar arbol de directorios con php

Hola amigos,

Estoy tratando de generar un árbol de directorios en mi aplicación, encontré este hilo: http://www.forosdelweb.com/f18/selec...ctorio-924918/

He modificado levemente la función que presenta el hilo para desplegar directorios y le agregué recursividad para que muestre el contenido de todos los subderictorios. en el árbol de directorios html la estructura es:
Código HTML:
Ver original
  1. <ul id="browser" class="filetree treeview-famfamfam">
  2.         <li><span class="folder">Folder 1</span>
  3.             <ul>
  4.                 <li><span class="folder">Item 1.1</span>
  5.                     <ul>
  6.                         <li><span class="file">Item 1.1.1</span></li>
  7.                     </ul>
  8.                 </li>
  9.                 <li><span class="folder">Folder 2</span>
  10.                     <ul>
  11.                         <li><span class="folder">Subfolder 2.1</span>
  12.                             <ul id="folder21">
  13.                                 <li><span class="file">File 2.1.1</span></li>
  14.                                 <li><span class="file">File 2.1.2</span></li>
  15.                             </ul>
  16.                         </li>
  17.                         <li><span class="folder">Subfolder 2.2</span>
  18.                             <ul>
  19.                                 <li><span class="file">File 2.2.1</span></li>
  20.                                 <li><span class="file">File 2.2.2</span></li>
  21.                             </ul>
  22.                         </li>
  23.                     </ul>
  24.                 </li>
  25.                 <li class="closed"><span class="folder">Folder 3 (closed at start)</span>
  26.                     <ul>
  27.                         <li><span class="file">File 3.1</span></li>
  28.                     </ul>
  29.                 </li>
  30.                 <li><span class="file">File 4</span></li>
  31.             </ul>
  32.         </li>
  33.     </ul>


Lo anterior lo quiero generar dinámicamente con la siguiente función:

Código PHP:
Ver original
  1. function listar_archivos($directorio){                                              
  2.        
  3.         $puntos = array('.', '..'); // exluimos.                      
  4.         $item = array_diff(scandir($directorio), $puntos);
  5.            
  6.         natsort($item);
  7.  
  8.         foreach($item as $archivo) {
  9.                                        
  10.             $ruta = $directorio.$archivo;
  11.            
  12.             if (is_dir($ruta)){
  13.                //solo si el archivo es un directorio, distinto que "." y ".."
  14.                $info = pathinfo($archivo);
  15.                echo "<ul><li><span class=\"folder\">".$info['filename']."</span></li></ul>";
  16.                            
  17.                //echo '<li><a href="'.$ruta.'">'.$info["filename"].'</a></li>';
  18.                listar_archivos($ruta."/");
  19.             }
  20.  
  21.             if (is_file($ruta)) {      
  22.                
  23.                 $info = pathinfo($archivo);
  24.                 echo '<li><a href="'.$ruta.'">'.$info["filename"].'</a></li>';
  25.             }                      
  26.         };
  27.     }
  28.    
  29.     echo "<ul id=\"browser\" class=\"filetree treeview-famfamfam\">";  
  30.     listar_archivos($_SERVER['DOCUMENT_ROOT']."/evaluaciones2/uploads/");
  31.     echo "</ul>";

Lo único que genero es todos los directorios y subdirectorios al mismo nivel pero no divido en subniveles a forma de árbol,

En qué me he equivocado? me pueden ayudar a revisar la función para que se genere correctamente?

Desde ya se los agradezco.

Saludos