I want to read a file which is on a remote ftp server to a variable. I tried reading with address
fopen(\"ftp://user:pass@localhost/filetoread\");
The PHP FTP URL wrapper seems to require FTP SIZE
command, what your FTP server does not support.
Use the ftp_fget instead:
$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);
(add error handling)
See PHP: How do I read a .txt file from FTP server into a variable?