Попробуйте это из комментария на странице руководства для copy
:
function recurse_copy($src,$dst) {
$dir = opendir($src);
@mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
recurse_copy($src . '/' . $file,$dst . '/' . $file);
}
else {
copy($src . '/' . $file,$dst . '/' . $file);
}
}
}
closedir($dir);
}
Обратите внимание, что это решение удачно перезапишет любые файлы, которые существуют в каталоге $dst
. Если вы хотите избежать этого, вы можете заключить код в в этом вопросе в функцию и вызвать эту функцию вместо copy
.
Я не уверен, что вы хотите передать по FTP, если вы укажете, что я буду рад отредактировать мой ответ.