Получение «отчетов FTP-сервера 550 Не удалось получить размер файла». При использовании FTP-URL в fopen

Я хочу прочитать файл, который находится на удаленном ftp-сервере для переменной. Я пробовал читать с адресом

fopen("ftp://user:pass@localhost/filetoread"); 

а также

 $contents = file_get_contents('ftp://ftpuser:123456789@localhost/file.conf'); echo $contents; 

Не работает. Я также попытался отправить непосредственно GET на URL-адрес, который также не работает. Как я могу прочитать файл FTP без загрузки?

Я проверил предупреждение php, в котором говорится:

PHP Предупреждение: file_get_contents ( ftp: //…@localhost/file.conf ): не удалось открыть поток: отчеты FTP-сервера 550 Не удалось получить размер файла.
в /var/www/html/api/listfolder.php в строке 2

Я уверен, что файл существует

Кажется, что для оболочки PHP FTP URL требуется команда FTP SIZE , что ваш FTP-сервер не поддерживает.

ftp_fget этого используйте ftp_fget :

 $conn_id = ftp_connect('hostname'); ftp_login($conn_id, 'username', 'password'); $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); 

См. PHP: Как читать файл .txt с FTP-сервера в переменную?