0

したがって、リモートホストの /upload/ フォルダーからすべてのコンテンツを取得し、ファイルがある場所にコピーすると思われるこのコードを取得しました。コードは次のようになります。

<?php 
$ftp_server = "server"; 
$conn_id = ftp_connect ($ftp_server) 
    or die("Couldn't connect to $ftp_server"); 

$login_result = ftp_login($conn_id, "user", "password"); 
if ((!$conn_id) || (!$login_result)) 
    die("FTP Connection Failed"); 

ftp_sync ("/update/"); 

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, "."); 
    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 (".."); 

} 
?>

空のフォルダーで実行すると、想定どおりに動作します。ただし、/update/ のファイルを含むフォルダーで実行すると、2 つのエラーが発生します。エラーを以下に示します

Warning: mkdir() [function.mkdir]: Permission denied in /home/limited/public_html/download.php on line 25

Warning: chdir() [function.chdir]: No such file or directory (errno 2) in /home/limited/public_html/download.php on line 26

エラーをスローするのではなく、ファイルを新しいファイルで上書きするだけだと思われます。

ありがとうございました

4

1 に答える 1