2012-12-15 39 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

相关问题