我为这个糟糕的代码花了(浪费)2天(可能没什么错误)
$diretc [] = ('../documentos');
$txt = "";
function getDirContents($diret){
for ($i=0; $i <sizeof($diret) ; $i++) {
$dir = $diret[$i];
if(is_dir($dir)){ //lee si es un directorio
$GLOBALS['txt'] .= '<ul>'.$dir;
while(($archivo = readdir($dir)) !== false){
if (is_dir($archivo)) {
$directorios[] = $archivo;
}
else if ($archivo != "." && $archivo != "..") {
$GLOBALS['txt'] .= '<li>'.$dir.DIRECTORY_SEPARATOR.$archivo.'</li>';
}
}
$GLOBALS['txt'] .='</ul>';
}
}
if (sizeof($directorios) > 0) {
getDirContents($directorios);
}
return $txt;
}
echo getDirContents($diretc);
我尝试使用路径中的文件列出每个目录 documentos 我想按顺序列出所有这些目录,例如文件管理器,如this
这样的树答案 0 :(得分:0)
尝试提供帮助。请尝试以下代码。
function listDir($path, $recursive = false) {
$recursive = ( $recursive === true );
$invalidPaths = array( '.', '..' );
$valid = is_dir($path);
if ($valid !== true) {
return array();
}
$array = array();
foreach(scandir($path) as $file) {
// Check for invalid paths
$invalid = in_array( $file, $invalidPaths );
if ($invalid === true) {
continue;
}
// Format and add file
$filename = "$path/$file";
array_push($array, $filename);
// Check for read dir recursive
$isDirectory = is_dir($file);
if ($isDirectory && !$recursive) {
continue;
}
// Add itens
$subDirArray = listDir($filename, $recursive);
$array = array_merge($array, $subDirArray);
}
return $array;
}
$path = '../documentos';
$pathList = listDir($path, true);
foreach($pathList as $item) {
echo "<pre>$item</pre>";
}