КАК В PHP РАБОТАТЬ С SFTP
Для работы с протоколом SFTP в PHP существует специальное расширение ssh2, которое включает в себя функции для установления соединения с SFTP-сервером, выполнения операций чтения и записи файлов, а также получения списка файлов на удаленном сервере.
Для начала работы с SFTP в PHP необходимо установить расширение ssh2:
sudo pecl install ssh2
После успешной установки можно использовать функции для работы с SFTP:
$connection = ssh2_connect('example.com', 22);ssh2_auth_password($connection, 'username', 'password');$sftp = ssh2_sftp($connection);$stream = fopen("ssh2.sftp://$sftp/path/to/remote/file", 'r');
В данном примере мы устанавливаем соединение с SFTP-сервером по адресу example.com, авторизуемся с помощью логина и пароля, получаем дескриптор SFTP-сессии и открываем файл для чтения на удаленном сервере.
Ниже приведен пример функции для загрузки локального файла на удаленный SFTP-сервер:
function upload_file_via_sftp($local_file_path, $remote_file_path, $sftp_conn_resource) { $stream = @fopen("ssh2.sftp://$sftp_conn_resource$remote_file_path", 'w'); if (!$stream) { return false; } $data_to_send = @file_get_contents($local_file_path); if (!$data_to_send) { return false; } if (@fwrite($stream, $data_to_send) === false) { return false; } @fclose($stream); return true;}
Функция принимает путь к локальному файлу, путь к удаленному файлу и дескриптор SFTP-сессии. Функция загружает файл на удаленный сервер, в случае успешной загрузки возвращает true, в противном случае - false.
PHP уроки 3. Работа по FTP с помощью FileZilla. PHP для начинающих.
Connect to FTP/SFTP Server using Visual Studio Code and SFTP Extention
How to list the files from an SFTP server using PHP
sftp - #phpstarters
SFTP, SSH. Пошаговое руководство
PHP уроки. 3: Работа по FTP с помощью FileZilla (PHP для начинающих)
Get list of files present on a SFTP server in PHP using phpseclib library using a dummy SFTP server
SFTP upload to and download from a remote server in PHP 7 using phpseclib (Simple Code)