递归地将文件从目录复制到目标


copy files from directory to destination recursively

我写了一个php脚本,从"oldphoto"目录复制所有图像,然后重命名并将它们移动到/l/o/log.php 目录中,例如logo.png->

但最终目录成功创建,但图像没有复制,下面是代码

<?php
$objects = scandir('./oldphoto');

foreach ($objects as $value) {
    if ($value!='.' && $value!='..') {
        $prefix = renameTxt($value);
        moveImg ($prefix, $value);
    }
}
function renameTxt ($line) {
    $first_char = '/'.substr($line, 0 ,1);
    $sec_char = '/'.substr($line, 1 ,1).'/';
    $prefix = $first_char.$sec_char;
    return $prefix;
}
function moveImg ($prefix, $filename) {
    $src = $filename;
    $dst = '/newphoto'.$prefix;
    rcopy('oldphoto/'.$src, $dst, $filename);
}
function rcopy($src, $dst, $filename) {
    @mkdir('newphoto/'.$dst, 0, true);
    //echo $dst."<br>";
    echo $dst.$filename."<br>";
    echo 'src '.$src."<br>";
    echo 'filename '.$filename."<br>";  
    if (!copy($src, $dst.$filename)) {
        echo "fail to write image";
    }
}

?>

有人能解决问题吗?

回波结果:

/newphoto/l/o/logo.png
src oldphoto/logo.png
/newphoto/l/o/logo_mini.png
src oldphoto/logo_mini.png
/newphoto/w/h/white50.png
src oldphoto/white50.png

您的目的地错误。开头的斜杠使它在根目录中查找,而不是您的目录。使用DIR或指定目录的绝对路径。