2017-02-09 12 views
-1

Я пытаюсь рекурсивно сканировать структуру каталогов моего сервера (начиная с DOCUMENT ROOT), загружать содержимое в массив (каждый подкаталог как другое значение) и выводит его.Рекурсивно сканировать структуру каталогов с помощью PHP (только для dirs) и загрузить его в массив

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

Например:

[0] => dir 1 
[1] => dir 1/subdir 1 
[2] => dir 2 

и так далее.

Как бы я это сделал?

+3

[Theres некоторые встроенные в благости, чтобы справиться с этим] (http://php.net/manual/en/class.recursivedirectoryiterator.php) – castis

+0

Я видел это, но как я могу использовать его, чтобы исключить файлы из массива? – Mirian

+0

вы хотите исключить определенные файлы из списка или вас беспокоит, что DirectoryIterator собирается открыть все файлы? – castis

ответ

0

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

Примеры located here обеспечивают хорошее количество базового кода для построения. Но это должно быть то, что вы ищете.

Having said that, it would be irresponsible not to point out that your question is not considered a good question by StackOverflow standards. В будущем не удивляйтесь, если вопросы будут такими же краткими, как если бы они были опущены и отмечены как закрытые.

<?php 

$directory = '.'; 

$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory), RecursiveIteratorIterator::SELF_FIRST); 

$dirs = array(); 

foreach ($iterator as $file) { 
    $filename = $file->getFilename(); 
    // remove this and check out what happens 
    if ($filename == '.' || $filename == '..') { 
     continue; 
    } 
    if ($file->isDir()){ 
     $dirs[] = $file->getPathname(); 
    } 
} 

var_dump($dirs); 
+0

Код, который вы предоставили, работает как шарм! Одна вещь - когда я просматриваю массив, записи внутри представлены как [0] => строка (35) "/ home/chalouco/public_html/wp-admin" - почему это? – Mirian

+0

Указанные каталоги являются абсолютными путями из корня файловой системы. – castis

+0

Да, я знаю - я установил Корневой документ, чтобы быть исходной папкой. Я имею в виду, что эти «строки (числа)» штук в значениях массива? – Mirian