Попробуйте:
$c = curl_init("ftp://$username:$password@ftp.example.com/$remote");
// $local is the location to store file on local client
$fh = fopen($local, 'w') or die($php_errormsg);
curl_setopt($c, CURLOPT_FILE, $fh);
curl_exec($c);
curl_close($c);
Вы передаете URL-адрес для использования в curl_init ().Поскольку URL начинается с ftp: //, cURL знает, как использовать протокол FTP.Вместо отдельного вызова для входа на удаленный сервер вы встраиваете имя пользователя и пароль непосредственно в URL.Далее вы устанавливаете место для хранения файла на вашем сервере.Теперь вы открываете файл с именем $ local для записи и передаете дескриптор файла в curl_setopt () в качестве значения для CURLOPT_FILE.Когда cURL передает файл, он автоматически записывает в дескриптор файла.Как только все настроено, вы вызываете curl_exec (), чтобы инициировать транзакцию, и затем curl_close (), чтобы закрыть соединение.