递归搜索目录中的所有文件夹路径

SoL*_*oST 1 php directory-structure

我试图以递归方式在目录中搜索子目录的任何目录中的所有子目录.基本上所有文件夹都从根目录开始,我需要将文件复制到找到的所有文件夹以及主根文件夹中.我怎样才能做到这一点?

这是我到目前为止所拥有的,但它需要完全递归,以便它获取该根目录中的所有文件夹,以及sub中的文件夹,以及其中的内容,无休止的搜索,直到没有更多的文件夹...

@copy($extendVars['dir'] . '/index.php', $real_extendpath . '/index.php');

$dh = @opendir($real_extendpath);
while (false !== ($obj = readdir($dh)))
{
    if ($obj == '.' || $obj == '..')
        continue;

    if (is_dir($real_extendpath . '/' . $obj))
        @copy($extendVars['dir'] . '/index.php', $real_extendpath . '/' . $obj . '/index.php');
}

closedir($dh);
Run Code Online (Sandbox Code Playgroud)

sal*_*the 9

使用RecursiveDirectoryIterator标准PHP库(docs)中的朋友,可以非常轻松地对文件系统中的目录进行递归.

一个基本的例子看起来像

$directories = new RecursiveIteratorIterator(
    new ParentIterator(new RecursiveDirectoryIterator($directory_to_iterate)), 
    RecursiveIteratorIterator::SELF_FIRST);

foreach ($directories as $directory) {
    // Do your work here
}
Run Code Online (Sandbox Code Playgroud)

根据您的特殊需求,// Do your work here可以像下面的代码片段一样简单.

copy($extendedVars['dir'] . '/index.php', $directory . '/index.php');
Run Code Online (Sandbox Code Playgroud)