2012-12-15 86 views
2
$ssh = new Net_SSH2($address, $port); 
if (!$ssh->login($user, $pass)) { 
    exit('Login Failed'); 
} 

echo "<pre>"; 

$ssh->setTimeout(5); 
echo $ssh->read(); 
$ssh->write($app_name); 
$ssh->write("\n \n \n b"); 
$ssh->write($f_one); // This is where I need to hit F1 
echo $ssh->read(); 

我已經搜查,發現CHR()可能是我的解決方案,但在功能鍵上的decial字符代碼包含逗號(是一對:00,59),其中chr()拆分爲單獨的參數並失敗。如何通過ssh外殼採用phpseclib送F1,F2,F3 ...按鍵

這是我發現的十進制對,如果它是正確的。 http://www.jimprice.com/jim-asc.shtml#keycodes

繼此線程帖子。 http://www.velocityreviews.com/forums/t277457-re-ascii-code-for-functions-keys-f1-f12-and-tab-key.html

任何幫助或在正確的方向上的點,將不勝感激。

+0

在第二個鏈接,你做一些研究,在功能鍵上的明顯映射? –

+0

第二個環節是毫無意義的廢話。它聲稱功能鍵的「ASCII」代碼在小寫字母範圍內。 – duskwuff

回答

1

你看在談論鍵盤掃描碼,這是完全不同的東西和不相關的關鍵代碼列表。

功能鍵的VT100序列很複雜。 F1至F4的通常發送爲:

F1: \x1bOP 
F2: \x1bOQ 
F3: \x1bOR 
F4: \x1bOS 

然而,這種模式確實擱置了後續的功能鍵。更完整的列表,請參閱http://rtfm.etla.org/xterm/ctlseq.html(搜索「12個功能鍵」,注意CSI代表序列\x1b[)。

+0

我試圖運行腳本,其中$ f_one =「\ X1B [OP但節目答覆說,它收到的O和P作爲單獨的按鍵我應該使用CHR(」 \ X1B [OP「) – zapplebee

+0

我的錯? - 我想指定錯誤的序列,刪除'['並再次嘗試。 – duskwuff

+0

同樣的結果。我試着逃避正斜槓。我害怕在PHP中「\ x1bOP」將評估爲字符串「1bOP」。 。 – zapplebee

相關問題