Как да форматирам PHP SSH2 read() изход?

Опитвам се да форматирам изхода на метода SSH2->read(). Опитах да използвам ANSI.php след http://phpseclib.sourceforge.net/ssh/examples.html#top

Моят код

<?php
include('Net/SSH2.php');
include('File/ANSI.php');
$ssh = new Net_SSH2('10.106.240.212');
$ssh->login('Administrator', 'Nbv12345') or die("Login failed");
$ansi = new File_ANSI();

$ssh->enablePTY();
$ssh->exec("powershell.exe\n");
$ssh->setTimeout(2);
echo $ssh->read();
$ssh->write("ls\n");
echo $ssh->read();
?>

Резултатът е пълен с ANSI знаци и няма резултати „ls“.

(B)0[?7l[H[J[1;1HWindows PowerShell[2;1HCopyright (C) 2013 Microsoft Corporation. All rights reserved.[4;1HPS C:\Users\Administrator> (B)0[?7l[H[J[1;1H [2;1H [3;1H [4;1H [5;1H [6;1H [7;1H [8;1H [9;1H [10;1H [11;1H [12;1H [13;1H [14;1H [15;1H [16;1H [17;1H [18;1H [19;1H [20;1H [21;1H [22;1H [23;1H [24;1H [1;1HMicrosoft Windows [Version 6.3.9600][2;1H(c) 2013 Microsoft Corporation. All rights reserved.[4;1HC:\Users\Administrator>ls[5;1H

Имам нужда от нещо подобно, дори не е близо:въведете описание на изображението тук

Как мога да форматирам това?


person GP cyborg    schedule 17.10.2014    source източник


Отговори (1)


Това, че инициализирате класа, не означава, че го включвате хаха. Опитайте тази:

<?php
include('Net/SSH2.php');
include('File/ANSI.php');
$ssh = new Net_SSH2('10.106.240.212');
$ssh->login('Administrator', 'Nbv12345') or die("Login failed");
$ansi = new File_ANSI();

$ssh->enablePTY();
$ssh->exec("powershell.exe\n");
$ssh->setTimeout(2);
$ansi->appendString($ssh->read());
$ssh->write("ls\n");
$ansi->appendString($ssh->read());
echo $ansi->getScreen();
?>

т.е. обвийте всичките си $ssh->read() повиквания в $ansi->appendString() и след това направете $ansi->getScreen(). Или може би само $ssh->read() след $ssh->write("ls\n") в $ansi->appendString(). Можете също да направите $ansi->getHistory().

person neubert    schedule 17.10.2014
comment
Хей Neubert, вече го пробвах. ANSI.php не може да анализира няколко знака като (B и )0[ и изходът е само подканата. Нищо друго! Notice: (B unsupported in C:\wamp\www\PT_TEST_FRAMEWORK\php\phpseclib\File\ANSI.php on line 434 - person GP cyborg; 20.10.2014
comment
Бихте ли публикували пълния резултат (преди да го пуснете през File_ANSI) във връзка pastebin.com? - person neubert; 20.10.2014