Intereting Posts
Facebook требуется расширение CURL PHP Как избежать вручную передать мой контейнер реестра $ в конструктор каждого нового класса, который я делаю? Определить, является ли текст UTF-8 полностью ASCII? php curl: как я могу эмулировать запрос получения точно так же, как веб-браузер? Как передать переменные из контроллера для просмотра PHP: создание обрезанных миниатюр изображений, проблем Отправка HTML-адреса электронной почты на php? Обнаруживать, если какой-либо IE (MSIE) PHP: Как преобразовать bigint из int в строку? Symfony2 Doctrine Qb STR_TO_DATE Неизвестная функция Как вы получаете композитор для установки не-композиторского пакета? Изменение цвета таблицы на основе значений из базы данных SQL Query с использованием PHP Почему rand () возвращает отрицательное значение, когда значения min и max являются положительными? Как сделать даты синтаксиса strtotime в формате австралийского (т.е. Великобритании): dd / mm / yyyy? CodeIgniter / jQuery – вызов Ajax возвращает полную html-страницу вместо моего эха

Список папок / подпапок с помощью RecursiveDirectoryIterator

Я использую этот код, чтобы получить список всех папок / подпапок репертуара:

$path = realpath($userdir); foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $filename) { echo "$filename\n"; } 

Однако он отображает что-то вроде этого, которое добавляет точки или двойные точки и отображает папку дважды:

C: \ WAMP \ WWW \ G \ FTP \ репозиторий \ пользователь \ сеньор.

C: \ WAMP \ WWW \ G \ FTP \ репозиторий \ пользователь \ сеньор ..

C: \ WAMP \ WWW \ G \ FTP \ репозиторий \ пользователь \ сеньор \ apatik.

C: \ WAMP \ WWW \ G \ FTP \ репозиторий \ пользователь \ сеньор \ apatik ..

C: \ WAMP \ WWW \ G \ FTP \ репозиторий \ пользователь \ сеньор \ vvxcv.

C: \ WAMP \ WWW \ G \ FTP \ репозиторий \ пользователь \ сеньор \ vvxcv ..

C: \ WAMP \ WWW \ G \ FTP \ репозиторий \ пользователь \ сеньор \ vvxcv \ vcxvcx.

C: \ WAMP \ WWW \ G \ FTP \ репозиторий \ пользователь \ сеньор \ vvxcv \ vcxvcx ..

Вместо чего-то более чистого:

C: \ WAMP \ WWW \ G \ FTP \ репозиторий \ пользователь \ сеньор

C: \ WAMP \ WWW \ G \ FTP \ репозиторий \ пользователь \ сеньор \ apatik

C: \ WAMP \ WWW \ G \ FTP \ репозиторий \ пользователь \ сеньор \ vvxcv

C: \ WAMP \ WWW \ G \ FTP \ репозиторий \ пользователь \ сеньор \ vvxcv \ vcxvcx

Есть ли способ? Ранее я использовал функцию glob

 glob($sub . '/*' , GLOB_ONLYDIR); 

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

благодаря

вам нужно что-то вроде этого

 set_time_limit(0); function scanDirectory($sub = ''){ $folders = glob($sub . '/*' , GLOB_ONLYDIR); foreach($folders as $folder){ echo "$folder<br />"; scanDirectory($folder); } } scanDirectory(); 

и в нем будут перечислены все папки на текущем диске

РЕДАКТИРОВАТЬ

$folders = glob($sub . '/*' , GLOB_ONLYDIR); получит все папки в указанной директории.

foreach($folders as $folder) будет перебирать массив folders .

$sub будет именем папки, которое будет изучено.

поэтому, это папки

азбука

$folders будут иметь как $folders['A', 'B', 'C']

и в цикле, каждый AB and C будут переданы как $sub чтобы проверить, есть ли в нем больше folders или нет.