file_get_contents
- это самое простое решение:
$contents = file_get_contents('ftp://username:password@hostname/path/to/file');
Если это не сработает, возможно, потому, что у вас нет оберток URL, включенных в PHP .
Если вам требуется больший контроль над чтением (режим передачи, пассивный режим, смещение, предел чтения и т. д.), используйте ftp_fget
с ручкой потока php://temp
(или php://memory
) :
$conn_id = ftp_connect('hostname');
ftp_login($conn_id, 'username', 'password');
ftp_pasv($conn_id, true);
$h = fopen('php://temp', 'r+');
ftp_fget($conn_id, $h, '/path/to/file', FTP_BINARY, 0);
$fstats = fstat($h);
fseek($h, 0);
$contents = fread($h, $fstats['size']);
fclose($h);
ftp_close($conn_id);
(добавить обработку ошибок)