phptelnet vs phpseclib

时间:2010-08-25 15:20:48

标签: php phpseclib

我正在尝试从php连接unix服务器并执行.exe(C语言)。早些时候我使用phptelnet来达到这个目的,但是现在由于安全问题我需要转移到phpseclib。当我使用phptelnet时,我有100%的成功率。我可以运行一些外部程序,如'C'程序,在php脚本中输入参数作为输入。在phptelnet中我使用

$telnet->DoCommand('cd public_html');
$telnet->DoCommand('cd abc');
$telnet->DoCommand('demo.exe');
$telnet->DoCommand("$inputs", $result);
echo $result;

这很完美。但现在我正在使用phpseclib。我可以通过ssh连接到unix服务器并执行程序中硬编码输入的程序。我正在使用

echo $ssh->exec('./demo.exe');

现在的问题是如何为程序提供输入。我如何使用exec()接受参数作为输入。例如,demo.exe是一个添加两个数字的程序。所以我可以说

 echo $ssh->exec("./demo.exe, '10 20'");

另外,我如何使用exec()在一次执行中执行多个代码。我有点困惑。对此的任何意见都非常感谢。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您有多种选项可供使用:

 $ssh->exec("./demo.exe '10' '20'");

省略逗号,并将每个参数括起来。或者使用$opts = implode(" ", array_map("escapeshellarg", $opts))转换列表。

如果您使用的是SSH1连接,则一次只能执行一个命令。如果要连接到Windows服务器(看起来像这样),那么一行上就不能有两个命令。

仅适用于您可以使用的BSD / Linux服务器:

 $ssh->exec("cmd1 ; cmd2");