以下のコードは、ディレクトリを再帰的に正常にダウンロードできるほど機能します。しかし、このディレクトリ内のディレクトリをダウンロードしたい。だから、それが接続するとき、それはです。以内 。directory はサブディレクトリ "In" です。In ディレクトリ内の内容を再帰的に取得したい。ディレクトリ名自体が変更されるため、スクリプト自体でそれがどうなるかを指定することはできません...誰もこれを行う方法を知っていますか?
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 ("..");
}