Каталог, подкаталог и каталог PHP по умолчанию.

Я хочу перечислить все каталоги, подкаталоги и файлы, используя php.

Я попробовал следующий код. он возвращает все каталоги, подкаталоги и файлы, но он не отображается в правильном порядке.

Например, порядок по умолчанию: 1dir, 2dir, 7dir, 8dir, в то время как в браузере он показывает 1dir, 8dir, 7dir, 2dir, что неверно.

код:

       function createDir($path = '.')
{
if ($handle = opendir($path))
{
echo "<ul>";

while (false !== ($file = readdir($handle)))
{if (is_dir($path.$file) && $file != '.' && $file !='..') {
printSubDir($file, $path);
}
else if ($file != '.' && $file !='..'){
$allowed = array('pdf','doc','docx','xls','xlsx','jpg','png','gif','mp4','avi','3gp','flv','mov','PDF','DOC','DOCX','XLS','XLSX','JPG','PNG','GIF','MP4','AVI','3GP','FLV','MOV','html','HTML','css','CSS','js','JS');
$ext = pathinfo($file, PATHINFO_EXTENSION);
if(in_array($ext,$allowed) ) {
$queue[] = $file;

}
}

}

printQueue($queue, $path);
echo "</ul>";
}
}

function printQueue($queue, $path)
{

sort($queue);
foreach ($queue as $file)
{
//printFile($file, $path);
}
}

function printFile($file, $path) {

echo "<li><a href=\"".$path.$file."\" target='_blank'>$file</a></li>";

}

function printSubDir($dir, $path)
{
echo "<li><span class=\"toggle\">$dir</span>";
createDir($path.$dir."/");
echo "</li>";
}

createDir($path);
?>

нужна помощь для исправления кода и отображения директории, подкаталога и файлов в правильном порядке.

1

Решение

У меня та же проблема при перечислении файлов каталога. Но я использовал DirectoryLister
Этот код очень полезен. Вы можете легко перечислить ваши файлы.

Вы можете реализовать это, выполнив следующие действия.

  1. Скачать и извлечь каталог Lister
  2. Скопируйте resources / default.config.php в resources / config.php
  3. Загрузите index.php и папку ресурсов в папку, которую вы хотите перечислить
  4. Загрузите дополнительные файлы в тот же каталог, что и index.php

Я надеюсь, что это может помочь вам

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]