Я пытаюсь отправить строковые данные в удаленный путь FTP.Я делал это раньше в других настройках, но в этом случае сервер, похоже, не распознает строку идентификации.Вероятно, это просто небольшая синтаксическая ошибка в строке пути ftp, но я ее не вижу.
Я знаю, что достигаю удаленного сервера, потому что я могу проверить файл журнала и увидеть сообщение
Did not receive identification string from xxx.xxx.xxx.xxx
для каждой попытки, которую я делаю.
После некоторого зависания мой скрипт просто возвращает ошибку
Warning: fopen() failed to open stream.
Мой путь к файлу отформатирован таким образом:
$ftp_path = "ftps://user:password@remoteaddress:12345/path/to/file/filename.txt";//port 12345 is deliberate because I use port forwarding on the server to reduce failed hack attempts
Часть скрипта, которая имеет дело с соединением, выглядит следующим образом:
$ftp_path = "ftps://user:password@remoteaddress:12345/path/to/file/filename.txt";
// Allow/disallow overwriting of existing files on the remote FTP server
$stream_options = array('ftps' => array('overwrite' => false));
// Creates a stream context resource with the defined options
$stream_context = stream_context_create($stream_options);
// Opens the file for writing and truncates it to zero length
if ($fh = fopen($ftp_path, 'w', 0, $stream_context)){
// Writes contents to the file
if(fputs($fh, $content)){
echo "records pushed successfully.";
} else {
echo "The stream was opened, but the records failed to push.";
}
// Closes the file handle
fclose($fh);
} else {
die('Could not open remote ftp.');
}