Pokud na hostingu nemám možnost zapnutí knihovy ftp_ssl_connect, sahám po skvělém phpseclib.
Připojení k SFTP serveru pomocí loginu a hesla
use phpseclib\Net\SFTP;
$sftp = new SFTP('www.example.com');
if (!$sftp->login('username', 'password')) {
throw new Exception('Login failed');
}
Připojení k SFTP serveru pomocí privátního klíče
use phpseclib\Crypt\RSA;
use phpseclib\Net\SFTP;
$sftp = new SFTP('www.example.com');
$Key = new RSA();
$Key->setPassword('passphrase'); // pokud Váš privátní klíč má heslo
$Key->loadKey(file_get_contents('path_to_private_key'));
if (!$sftp->login('username', $Key)) {
throw new Exception('Login failed');
}
Upload dat na server
$sftp->put('filename.remote', 'nějaký_obsah_uploadovaného_souboru');
Upload souboru
$sftp->put('filename.remote', 'filename.local', SFTP::SOURCE_LOCAL_FILE);
Stažení souboru
echo $sftp->get('filename.remote'); // s přístupem k datům ihned
$sftp->get('remote_file', 'local_file'); // s uložením do lokálního souboru
Změna adresáře
$sftp->chdir('directory_name');
Výpis adresáře
$files = $sftp->nlist();
Mazání, přejmenování souboru nebo adresářů
$sftp->delete('filename.remote'); // rekurzivní mazání souborů nebo adresářů
$sftp->delete('dirname.remote', false); // mazání bez rekurze
$sftp->rename('filename.remote', 'newname.remote');
Doplnění:
- Instalace verze 2.0 pomocí composeru: composer require phpseclib/phpseclib:~2.0
- Instalace verze 1.0 pomocí composeru: composer require phpseclib/phpseclib:~1.0
- Github repositář
- Dokumentace
Nestahujte větěv master, ta slouží pro vývoj a neměla by přijít na produkci!
září 2018