【发布时间】:2013-01-13 00:53:31
【问题描述】:
<?php
include('Net/SSH2.php');
define('NET_SSH2_LOGGING', NET_SSH2_LOG_COMPLEX);
$ssh = new Net_SSH2('hostip');
if (!$ssh->login('user', 'passwd')) {
exit('Login Failed');
}
$cmd="bdf|awk '{print $NF}'";
$ssh->exec($cmd,$output,$exit_code);
echo $output;
echo "Exit code: $exit_code";
foreach($output as $row){
list($mount,$usage) = preg_split('//', $row, PREG_SPLIT_NO_EMPTY);
echo "$mount $usage";
}
?>
我正在尝试使用phpseclib 的ssh2 类运行上述代码。
这会返回一个错误
警告:在第 13 行的 C:\wampserverdox\aargh.php 中为 foreach() 提供的参数无效
我哪里错了。
我想格式化exec() 函数返回的输出。
【问题讨论】:
-
foreach循环需要一个数组,显然$output它不是一个。在foreach循环之前执行var_dump($output);以检查它是什么,以及它里面有什么。 -
$output 变量打印什么?
-
把 exit 放在 $output 之后看看你会得到什么。
-
退出代码:1array(0) { } 这是它返回的内容。
-
您需要转义 $NF 以便将其发送给 exec