[PHP & SSH] Caractère étrange
coccoweb
Messages postés
155
Statut
Membre
-
coccoweb Messages postés 155 Statut Membre -
coccoweb Messages postés 155 Statut Membre -
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();
?>