Una forma sencilla de crear un árbol de directorios con PHP
Código PHP:
Ver original<?php
define('PATH', __DIR__
. DIRECTORY_SEPARATOR); }
function getFile($root, $n = 0){
$n++;
foreach(glob($root . '/*', GLOB_NOSORT
) as $file){ /**
* Verifica si el nombre del directorio es solo número, añade un espacio
* al final del nombre para mantener la llave cuando use array_merge
*/
$key = is_numeric($f['basename']) ?
$f['basename'] . ' ' : $f['basename']; 'real_path' => realpath($f['dirname'] . DIRECTORY_SEPARATOR . $f['basename']), 'n_array' => $n,
'files_in_dir' => getFile($file, $n)
);
}
else{
$onlyFiles[$f['basename']] = array( 'real_path' => realpath($f['dirname'] . DIRECTORY_SEPARATOR . $f['basename']), 'http_path' => str_replace(array('//', '\\'), '/', $f['dirname'] . '/') . $f['basename'], 'n_array' => $n,
);
}
}
}
function setFile($files){
$customFile = '';
foreach($files as $key => $file){
if(is_array($file) && $key != 'pathInfo'){ if($key != 'files_in_dir'){
$tab = str_repeat(' ', $file['n_array']); $type = empty($file['pathInfo']) ?
'[' . trim($key) . ']' : trim($key); $customFile .= $tab . $type . '<br />';
}
$customFile .= setFile($file);
}
}
return $customFile;
}
/**
* Puedes especificar un directorio o simplemente,
* lo dejas vacío para verificar desde donde está corriendo el código
*/
echo setFile(getFile(PATH . 'directorio'));
Nota: 2010-12-03: Corregir código