Intereting Posts
просмотр pdf в виде потока изображений – php Определите часовой пояс из широты / долготы без использования веб-сервисов, таких как Geonames.org Как использовать $ .ajax () для текста поля ввода И загрузка файла? Подпишитесь на подписчиков YouTube с помощью нового API YouTube v3 заменить пространство путем использования htaccess Как добавить / установить изображения на шаблоне PHPOffice / PHPWord? Как преобразовать десятичную дробь во времени, например. НН: ММ: СС Будет ли isset () возвращать false, если я назначаю NULL переменной? Как использовать PHP для удаления X числа строк с начала текстового файла? WooCommerce: автоматическое завершение оплаченных заказов (в зависимости от способов оплаты) Настройка содержимого в несколько текстовых областей TinyMCE? Соответствие только числам / персидским символам и латыни Чтение текстового файла с запятой или табуляцией Широкий доступ ODBC от PHP на Linux? PHP: расчет дня рождения с возрастом

Получать папки и файлы рекурсивно из папки в алфавитном порядке в PHP?

Мне нужно получить все папки и файлы из папки рекурсивно в алфавитном порядке (папки сначала, файлы после)

Есть ли реализованная функция PHP, которая подходит для этого?

У меня есть эта функция:

function dir_tree($dir) { $path = ''; $stack[] = $dir; while ($stack) { $thisdir = array_pop($stack); if ($dircont = scandir($thisdir)) { $i=0; while (isset($dircont[$i])) { if ($dircont[$i] !== '.' && $dircont[$i] !== '..' && $dircont[$i] !== '.svn') { $current_file = "{$thisdir}/{$dircont[$i]}"; if (is_file($current_file)) { $path[] = "{$thisdir}/{$dircont[$i]}"; } elseif (is_dir($current_file)) { $path[] = "{$thisdir}/{$dircont[$i]}"; $stack[] = $current_file; } } $i++; } } } return $path; } 

Я отсортировал массив и напечатал его так:

 $filesArray = dir_tree("myDir"); natsort($filesArray); foreach ($filesArray as $file) { echo "$file<br/>"; } 

Мне нужно знать, когда будет найден новый подкаталог, поэтому я могу добавить некоторые пробелы, чтобы напечатать его в директории, такой как структура, а не только в виде списка.

Любая помощь?

Большое спасибо

Посмотрите на RecursiveDirectoryIterator .

 $directory_iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir)); foreach($directory_iterator as $filename => $path_object) { echo $filename; } 

Я не уверен, что если он вернет файлы в алфавитном порядке.

Редактировать:

Как вы говорите, это не так, я думаю, что единственный способ – разобраться в себе.

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

Я нашел ссылку, которая очень помогла мне в том, чего я пытался достичь:

http://snippets.dzone.com/posts/show/1917

Это может помочь кому-то другому, сначала создает список с папками, файлы после. Когда вы нажимаете на подпапку, она отправляет и создается другая страница с папками и файлами в папке partent.