Я разрабатываю очень простую систему на PHP, которая в основном перечисляет все скриншоты моего xbox в виде миниатюр. Xbox подключен к моей локальной сети, и я делаю это, используя PHP для подключения к FTP-серверу Xbox и перечисления нужных файлов, и это работает нормально.
Проблема в том, что когда я использую функцию file_get_contents("ftp://user:pass@ftp_ip/path/screenshots/image.bmp")
FTP-сервер отправьте мне ответ500 команда не распознана».
Независимо от того, какую команду я использую, чтобы открыть файл на FTP-сервере, я пытался fopen()
а также filesize()
тоже не сработало. Все эти три функции PHP принимают протокол FTP, что означает, что функции используют оболочку FTP.
Так что мне нужно знать, что это за команда, которую эта оболочка ftp отправляет на FTP-сервер, чтобы получить выбранный файл.
Информация: ftp_get()
Функция работает нормально, но сохраняет файл напрямую в указанную папку, и мне просто нужно содержимое файла как String, то есть мне нужно содержимое файла, но я не хочу сохранять его в новом файле.
Руководство по PHP
Вы можете попробовать следующий ответ из руководства по PHP http://php.net/manual/en/function.ftp-get.php#111840:
ob_start();
$result = ftp_get($ftp, "php://output", $file, FTP_BINARY);
$data = ob_get_contents();
ob_end_clean();
Это должно поместить ваш файл в $ data вместо файла.
Других решений пока нет …