Чтобы получить данные из URL, у вас есть несколько вариантов. Вы говорите, что хотите, чтобы данные в памяти передавались только на хост FTP.
Один из подходов (который я считаю самым простым в использовании, но не хватает надежности и обработки ошибок) - file_get_contents()
Пример:
$url = 'http://www.domain.com/csvfile';
$data = file_get_contents($url);
Теперь у вас есть данные CSV в $data
, как перенести их на FTP-сервер.
Опять же, самый простой способ сделать это - использовать встроенные потоковые обертки, как в приведенном выше примере get. (Обратите внимание, что для этого требуется PHP 4.3.0)
Просто создайте строку подключения следующим образом.
$protocol = 'ftps';
$hostname = 'ftp.domain.com';
$username = 'user';
$password = 'password';
$directory = '/pub';
$filename = 'filename.csv';
$connectionString = sprintf("%s://%s:%s@%s%s/%s",
$protocol,$username,$hostname,
$password,$directory,
$filename);
file_put_contents($connectionString,$data);
Ознакомьтесь с инструкцией по ftp
Если это не работает, есть другие варианты.
Вы можете использовать curl для получения данных и FTP Extension для их отправки.