2014-01-24 3 views
0

나는이 같은 Net_SSH2 라이브러리와 읽기/쓰기 기능을 사용할 때의 읽기 함수에서 반환 내가 퍼티를 통해 같은 일을 실행할 때 참조 해달라고, 아래 참조 : 재미 문자 Net_SSH2 라이브러리 (phpseclib)

service httpd reload 
Reloading httpd: [60G[[0;31mFAILED[0;39m] 

[[email protected] ~]# 

이유는 read 함수의 리턴 데이터에서 이러한 [60G[[0;31m[0;39m]입니까?

답변

0

이들은 ANSI 제어 코드입니다. 그들의 목적은 텍스트 및 색상의 형식을 제어하는 ​​것입니다. 제대로 디코딩하려면 터미널 에뮬레이터가 필요합니다.

다음

http://phpseclib.sourceforge.net/ssh/examples.html#top

이 코드를 사용하기 위해 다시 것 : phpseclib는 File_ANSI라는 하나가

$ssh = new Net_SSH2($strServerIPAddress); 
$ansi = new File_ANSI(); 
if(!$ssh->login($strServerUsername, $strServerPassword)) 
die("error"); 
$ssh->write(" service httpd reload\n"); 
$ansi->appendString($ssh->read("[[email protected]$strServerName ~]#")); 
echo $ansi->getScreen(); 
$ssh->disconnect(); 
+0

덕분에, 난 그냥 모든 제어 문자와 무엇을하지를 제거하는 방법, 그래서 출력은 다만 보통이다 ? – user3232849

+0

URL의 맨 아래에있는 주소로 연결되었습니다. 'htmlspecialchars_decode (strip_tags ($ ansi-> getScreen()))' – neubert

+0

굉장하고, 나는 그것을 보았지만 확실히하고 싶었다. 고마워. :) – user3232849