note 50311 added to function.ssh2-connect

From: Date: Thu, 24 Feb 2005 13:00:10 +0000
Subject: note 50311 added to function.ssh2-connect
Groups: php.notes 
Request: Send a blank email to php-notes+get-85482@lists.php.net to get a copy of this message
With Sara's help, I have the following SS2 class that is quite flexible. If anyone improves it, please feel free to let me know. <?php // ssh protocols // note: once openShell method is used, cmdExec does not work class ssh2 { private $host = 'host'; private $user = 'user'; private $port = '22'; private $password = 'password'; private $con = null; private $shell_type = 'xterm'; private $shell = null; private $log = ''; function __construct($host='', $port='' ) { if( $host!='' ) $this->host = $host; if( $port!='' ) $this->port = $port; $this->con = ssh2_connect($this->host, $this->port); if( !$this->con ) { $this->log .= "Connection failed !"; } } function authPassword( $user = '', $password = '' ) { if( $user!='' ) $this->user = $user; if( $password!='' ) $this->password = $password; if( !ssh2_auth_password( $this->con, $this->user, $this->password ) ) { $this->log .= "Authorization failed !"; } } function openShell( $shell_type = '' ) { if ( $shell_type != '' ) $this->shell_type = $shell_type; $this->shell = ssh2_shell( $this->con, $this->shell_type ); if( !$this->shell ) $this->log .= " Shell connection failed !"; } function writeShell( $command = '' ) { fwrite($this->shell, $command."\n"); } function cmdExec( ) { $argc = func_num_args(); $argv = func_get_args(); $cmd = ''; for( $i=0; $i<$argc ; $i++) { if( $i != ($argc-1) ) { $cmd .= $argv[$i]." && "; }else{ $cmd .= $argv[$i]; } } echo $cmd; $stream = ssh2_exec( $this->con, $cmd ); stream_set_blocking( $stream, true ); return fread( $stream, 4096 ); } function getLog() { return $this->log; } } ?> ---- Manual Page -- http://www.php.net/manual/en/function.ssh2-connect.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+50311 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+50311&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+50311&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+50311&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+50311&report=yes&reason=useless Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+50311&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+50311&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#85482) next »