Как пройти по каталогу рекурсивно, возвращая полный путь в PHP? - PullRequest
3 голосов
/ 16 мая 2011

Я пытаюсь получить поведение, подобное команде "tree" в системах linux или unix, где функция возвращает список или массив каталогов в своем полном пути.

Пример

~/
~/Pictures
~/Movies
~/Downloads
~/Documents
~/Documents/work
~/Documents/important
~/Documents/bills
~/Music
~/Music/80s/

и т.д .... и т.д ...

Ответы [ 2 ]

7 голосов
/ 16 мая 2011
foreach (new RecursiveIteratorIterator (new RecursiveDirectoryIterator ('.')) as $x)
{
        echo $x->getPathname (), "\n";
}

Обновление № 1:

Если вы хотите, чтобы пустые каталоги также были перечислены, используйте RecursiveIteratorIterator :: CHILD_FIRST

foreach (new RecursiveIteratorIterator (new RecursiveDirectoryIterator ('.'), RecursiveIteratorIterator::CHILD_FIRST) as $x)
{
    echo $x->getPathname (), "\n";
}
1 голос
/ 16 мая 2011

Checkout PHP Recursivedirectoryiteiterator . Он будет делать то, что вам нужно, и у него есть несколько хороших примеров.

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