2017-09-08 1 views
-1

그래서 스크립트를phpseclib ANSI가 제대로 표시되지 않는

echo $ansi->getScreen(); 
$ansi->appendString($ssh->read()); 

을 가지고 그리고 그것은 보여줍니다

������������������������������������������������������������������������������͸ 

을하지만 퍼티 그 쇼 :

▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 
▒0001 0002 0003 0004 

는 방법이 있나요 I 적어도 숫자를 볼 수있는 지점까지 도달 할 수 있습니까?

+0

아마도'echo bin2hex ($ ansi-> getScreen())'을 실행하고 결과를 게시하십시오. 또는 좀 더 구체적으로, pastebin에 게시하고 링크를 게시하십시오. 그것들을 보았을 때 대신에 하나의 가능성이 있습니다 : PuTTY는 xterm을 에뮬레이트하고 phpseclib는 vt100을 에뮬레이트합니다. – neubert

+0

나는 당신이 말한 것을 시도한 다음 출력을 다시 변환했다. 번호가 누락되었습니다. phpseclib가 xterm을 에뮬레이트 할 수있는 방법이 있습니까? – MoonEater916

+0

'echo bin2hex ($ ansi-> getScreen())'의 출력을 게시 할 수 있습니까? 어쩌면 phpseclib가 숫자를 얻고 있지만 캐리지 리턴이 이전에 출력 된 데이터를 덮어 쓰게되므로 결과가 숨겨져있을 수 있습니다. 어쩌면 ANSI 이스케이프 코드 중 하나가 phpseclib에 의해 전혀 파싱되지 않았거나 올바르게 파싱되지 않았을 수 있습니다. '$ ansi-> appendString'에 전달하는 데이터를 검사하여 (평가 부족에 의존하는 대신 자신을 위해 이것을 찾을 수 있도록) 싶습니다. – neubert

답변

-1

그래서 문제를 자세히 조사한 후. 호스트 컴퓨터가 출력 한 코드화 된 형식은 ANSI 기능과 부정적으로 작용합니다. 결과적으로 ANSI는 출력에 대한 정보를 삭제합니다.

ANSI를 내 자신의 디자인으로 교체하면 문제가 해결됩니다.

관련 문제