PHP code example of dazzle-php / ssh
1. Go to this page and download the library: Download dazzle-php/ssh library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
dazzle-php / ssh example snippets
$loop = new Loop(new SelectLoop);
$auth = new SSH2Password($user, $pass);
$config = new SSH2Config();
$ssh2 = new SSH2($auth, $config, $loop);
$ssh2->on('connect:shell', function(SSH2DriverInterface $shell) use($ssh2, $loop) {
echo "# CONNECTED SHELL\n";
$buffer = '';
$command = $shell->open();
$command->write('ls -la');
$command->on('data', function(SSH2ResourceInterface $command, $data) use(&$buffer) {
$buffer .= $data;
});
$command->on('end', function(SSH2ResourceInterface $command) use(&$buffer) {
echo "# COMMAND RETURNED:\n";
echo $buffer;
$command->close();
});
$command->on('close', function(SSH2ResourceInterface $command) use($shell) {
$shell->disconnect();
});
});
$ssh2->on('disconnect:shell', function(SSH2DriverInterface $shell) use($ssh2) {
echo "# DISCONNECTED SHELL\n";
$ssh2->disconnect();
});
$ssh2->on('connect', function(SSH2Interface $ssh2) {
echo "# CONNECTED\n";
$ssh2->createDriver(SSH2::DRIVER_SHELL)
->connect();
});
$ssh2->on('disconnect', function(SSH2Interface $ssh2) use($loop) {
echo "# DISCONNECTED\n";
$loop->stop();
});
$loop->onTick(function() use($ssh2) {
$ssh2->connect();
});
$loop->start();
$loop = new Loop(new SelectLoop);
$auth = new SSH2Password($user, $pass);
$config = new SSH2Config();
$ssh2 = new SSH2($auth, $config, $loop);
$ssh2->on('connect:sftp', function(SSH2DriverInterface $sftp) use($loop, $ssh2) {
echo "# CONNECTED SFTP\n";
$lines = [ "DAZZLE\n", "IS\n", "AWESOME!\n" ];
$linesPointer = 0;
$file = $sftp->open(__DIR__ . '/_file_write.txt', 'w+');
$file->write();
$file->on('drain', function(SSH2ResourceInterface $file) use(&$lines, &$linesPointer) {
echo "# PART OF THE DATA HAS BEEN WRITTEN\n";
if ($linesPointer < count($lines)) {
$file->write($lines[$linesPointer++]);
}
});
$file->on('finish', function(SSH2ResourceInterface $file) {
echo "# FINISHED WRITING\n";
$file->close();
});
$file->on('close', function(SSH2ResourceInterface $file) use($sftp) {
echo "# FILE HAS BEEN CLOSED\n";
$sftp->disconnect();
});
});
$ssh2->on('disconnect:sftp', function(SSH2DriverInterface $sftp) use($ssh2) {
echo "# DISCONNECTED SFTP\n";
$ssh2->disconnect();
});
$ssh2->on('connect', function(SSH2Interface $ssh2) {
echo "# CONNECTED\n";
$ssh2->createDriver(SSH2::DRIVER_SFTP)
->connect();
});
$ssh2->on('disconnect', function(SSH2Interface $ssh2) use($loop) {
echo "# DISCONNECTED\n";
$loop->stop();
});
$loop->onTick(function() use($ssh2) {
$ssh2->connect();
});
$loop->start();
$loop = new Loop(new SelectLoop);
$auth = new SSH2Password($user, $pass);
$config = new SSH2Config();
$ssh2 = new SSH2($auth, $config, $loop);
$ssh2->on('connect:sftp', function(SSH2DriverInterface $sftp) use($loop, $ssh2) {
echo "# CONNECTED SFTP\n";
$buffer = '';
$file = $sftp->open(__DIR__ . '/_file_read.txt', 'r+');
$file->read();
$file->on('data', function(SSH2ResourceInterface $file, $data) use(&$buffer) {
$buffer .= $data;
});
$file->on('end', function(SSH2ResourceInterface $file) use(&$buffer) {
echo "# FOLLOWING LINES WERE READ FROM FILE:\n";
echo $buffer;
$file->close();
});
$file->on('close', function(SSH2ResourceInterface $file) use($sftp) {
echo "# FILE HAS BEEN CLOSED\n";
$sftp->disconnect();
});
});
$ssh2->on('disconnect:sftp', function(SSH2DriverInterface $sftp) use($ssh2) {
echo "# DISCONNECTED SFTP\n";
$ssh2->disconnect();
});
$ssh2->on('connect', function(SSH2Interface $ssh2) {
echo "# CONNECTED\n";
$ssh2->createDriver(SSH2::DRIVER_SFTP)
->connect();
});
$ssh2->on('disconnect', function(SSH2Interface $ssh2) use($loop) {
echo "# DISCONNECTED\n";
$loop->stop();
});
$loop->onTick(function() use($ssh2) {
$ssh2->connect();
});
$loop->start();
$> composer