Я использую этот код, чтобы получить список всех папок / подпапок репертуара:
$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
или нет.