[PHP & SSH] Caractère étrange
coccoweb
Messages postés
141
Date d'inscription
Statut
Membre
Dernière intervention
-
coccoweb Messages postés 141 Date d'inscription Statut Membre Dernière intervention -
coccoweb Messages postés 141 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je m'en remet à vous, car je suis dans l'impasse.
Je souhaite ouvrir des fichiers (un par un xD ) bash depuis PHP
J'y arrive, installation complète, mais il m'affiche ceci
Une idée ? Voici le code
Je m'en remet à vous, car je suis dans l'impasse.
Je souhaite ouvrir des fichiers (un par un xD ) bash depuis PHP
J'y arrive, installation complète, mais il m'affiche ceci
~ sc_serv v D#J"¢II5%>¨äZb--QIJ'í_ ~ ~Ì sc_serv.conf f D#J"¢I5%>¨äZb--QQJ'í_ ~ sc_serv.conf
Une idée ? Voici le code
<?php $connection = ssh2_connect('127.0.0.1', 22); ssh2_auth_password($connection, 'test', 'test'); $stream = ssh2_shell($connection, 'vt102', null, 80, 24, SSH2_TERM_UNIT_CHARS); fwrite( $stream, 'ls'); while($o=fgets($stream)){ echo $o.'<br>'; } ?>
A voir également:
- [PHP & SSH] Caractère étrange
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
- Caractere speciaux mac - Guide
3 réponses
C'est pas des données pour le rendu du shell ça ? Genre des couleurs ou d'autres meta données ?
Tu va peut-être devoir les virer toi même. Ou alors il faut passer par l'argument term_type de la fonction ssh2_shell, et indiquer un type qui soit en text/plain.
Tu va peut-être devoir les virer toi même. Ou alors il faut passer par l'argument term_type de la fonction ssh2_shell, et indiquer un type qui soit en text/plain.
Les terminaux que je connais, me renvois la même erreur:
j'ai essayé vanilla, vt102, xterm
PS : J'ai update ma librairie
que je joint
j'ai essayé vanilla, vt102, xterm
PS : J'ai update ma librairie
que je joint
<?php class SSH { private $conn; // Connection private $log=array(); // Event log private $stream; private $debug=false; public function __construct($user, $pass, $host, $port=22) { if ($this->connect($host,$port)) { if (@$this->auth_pwd($user,$pass)){ return true; } else { return false; } } else { return false; } } /*** Connection SSH ***/ public function connect($host,$port=22) { if ($this->conn = ssh2_connect($host, $port)) { $this->log[] = 'Connection succes to '.$host.':'.$port; return true; } else { $this->log[] = 'Connection faild to '.$host.':'.$port; return false; } } /*** Login SSH ***/ public function auth_pwd($user,$pass) { if (ssh2_auth_password($this->conn, $user, $pass)) { $this->log[] = 'Login succces by '.$user; return true; } else { $this->log[] = 'Login faild by '.$user; return false; } } /*** Open shell ***/ public function shell($term_type='vt102', $env=NULL, $width=80, $height=24) { $this->stream = ssh2_shell($this->conn, $term_type, $env, $width, $height, SSH2_TERM_UNIT_CHARS); $this->log[] = 'Open shell with PARAM ' . $term_type . ' ' .$env . ' ' .$width . ' ' .$height; } /*** Run a command ***/ public function cmd($cmd) { if (!empty($this->stream)) { $this->log[] = 'Run cmd : ' . $cmd; fwrite($this->stream, $cmd . PHP_EOL); sleep(1); } else { $this->log[] = 'Shell not run : exit'; $this->disconnect(); } } /*** Return log debuging ***/ function log($print=false) { if ($print == false) { return $this->log; } else { echo '<pre>'; foreach ($this->log as $key => $value) { echo $key . ' : ' . $value . PHP_EOL; } echo '</pre>'; } } /*** Print terminal return ***/ public function get() { $stderr_stream = ssh2_fetch_stream($this->stream, SSH2_STREAM_STDERR); while (!feof($stdout_stream)) { echo fgets($stdout_stream, 128); } } /*** Debug switch for call log() after disconnection ***/ public function debug() { $this->debug = true; } /*** Deconnexion ***/ public function disconnect() { // if disconnect function is available call it.. if ( function_exists('ssh2_disconnect') ) { $this->log[] = 'Disconnect by funct ssh2_disconnect'; ssh2_disconnect($this->conn); } else { // if no disconnect func is available, close conn, unset var $this->log[] = 'Disconnect by fclose'; @fclose($this->conn); unset($this->conn); } if ($this->debug == true){$this->log(true);} // return null always return NULL; } /*** Destruction de class ***/ public function __destruct(){ $this->disconnect(); } } $ssh = new SSH('user', 'pass', '127.0.0.1'); $ssh->debug(); $ssh->shell(); $ssh->cmd('ps'); $ssh->get(); $ssh->cmd('ls'); $ssh->get(); ?>