Как пройти каталог, рекурсивный возврат полного пути в PHP?

Я пытаюсь получить такое поведение, как команда «tree» в Linux или Unix-системах, где функция возвращает список или массив каталогов в своем полном пути.

пример

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

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

 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"; } 

Оформить рекурсивный справочник PHP. Он будет делать то, что вам нужно, и у него есть интересные примеры.