Код ниже работает настолько, что я могу успешно загрузить каталог рекурсивно. Но я хочу загрузить каталоги в этом каталоге. Итак, когда он подключается, он входит. Внутри. directory - это подкаталог «In». Я хочу рекурсивно получить содержимое в каталоге In. Имена самих каталогов будут меняться, поэтому я не могу указать, что будет в самом скрипте ... Кто-нибудь знает, как это сделать?PHP-подкаталог FTP рекурсивно?
ftp_sync ("./In/");
ftp_close($conn_id);
function ftp_sync ($dir) {
global $conn_id;
if ($dir != ".") {
if (ftp_chdir($conn_id, $dir) == false) {
echo ("Change Dir Failed: $dir<BR>\r\n");
return;
}
if (!(is_dir($dir)))
mkdir($dir);
chdir ($dir);
}
$contents = ftp_nlist($conn_id, "./In/");
foreach ($contents as $file) {
if ($file == '.' || $file == '..')
continue;
if (@ftp_chdir($conn_id, $file)) {
ftp_chdir ($conn_id, "..");
ftp_sync ($file);
}
else
ftp_get($conn_id, $file, $file, FTP_BINARY);
}
ftp_chdir ($conn_id, "..");
chdir ("..");
}
Над кодом хорошо работает в локальных папках. Чтобы он просматривал ftp-папки, сначала монтируйте их локально с помощью curlftpfs. – witkacy26