使用PHP(仅限dirs)递归扫描目录结构并将其加载到数组中

时间:2017-02-09 14:17:19

标签: php directory structure

我正在尝试递归扫描服务器的目录结构(从DOCUMENT ROOT开始),将内容加载到一个数组中(每个子目录作为不同的值)并输出它。

我不需要将文件存在于数组中 - 只需要目录结构,没有别的。

例如:

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

等等。

我将如何做到这一点?

1 个答案:

答案 0 :(得分: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);