将文件复制到所有子目录php

时间:2014-02-25 16:39:57

标签: php

我有一个文本文件,我想复制到具有以下结构的所有子目录中。

S000314/0000356/data folder  
/0000357/data folder  
/0000358/data folder 

所以,我正在读取所有子目录并尝试将文本文件复制到所有子目录中。但是,重命名功能只能复制一次。将文本文件复制到0000356->数据文件夹

if ($handle = opendir('S000314')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..")
        {
            rename("sdata.txt" , "/S000314/$entry/data/sdata.txt");
        }       
    }
    closedir($handle); 
}   

我不清楚如何将同一个文件复制到所有子目录中。请看下面的代码。

2 个答案:

答案 0 :(得分:1)

我建议使用copy()代替rename(),因为这是您想要的实际操作(代码更容易阅读)。

问题可能是目录分隔符 - 我在Windows上进行了测试,其中/\似乎都在工作,但这不应该是您关注的问题,因为PHP有​​{{3} }。

现在这段代码在我的机器上运行了:

$topdir = 'S000314';
if ($handle = opendir($topdir)) {
    print "in\n";
    while (FALSE !== ($subdir = readdir($handle))) {
        if ($subdir != '.' && $subdir != '..') {
            $dest = $topdir . DIRECTORY_SEPARATOR . 
                $subdir . DIRECTORY_SEPARATOR 
                'data' . DIRECTORY_SEPARATOR;
            copy('data.txt', $dest.'data.txt');
        }
    }
}

答案 1 :(得分:0)

@copy($yourSource_file, $yourFile_element . '/youPage.html');