0

我正在使用 php 的 net_ssh2 模块登录服务器并检索文件以进行实时数据收集。服务器都具有相同的用户名和密码。我面临的问题是,如果其中一台服务器关闭或由于某种原因使用了不同的密码,我的脚本就会停止。我需要脚本来跳过有问题的服务器并继续处理阵列中的其他服务器。

这是我当前执行此操作的 php 脚本:

include('Net/SSH2.php');
$servers=array('server1', 'server2','server3', 'server4', 'server5');
foreach ($servers as &$value1) {

    $server=$value1."example.net";

    $ssh = new Net_SSH2($server);
        if (!$ssh->login('username', 'password')) {
            exit('Login Failed');
        }

如何跳过我无法连接的服务器阵列中的服务器并继续处理其他服务器?

4

1 回答 1

5

使用continue

continue用于循环结构中以跳过当前循环迭代的其余部分并在条件评估处继续执行,然后开始下一次迭代。

if (!$ssh->login('username', 'password')) {
    echo('Login Failed'); // <-- remove if desired
    continue;
}

如果您希望在找到成功的服务器连接时结束循环,您也可以使用break

if (!$ssh->login('username', 'password')) {
    continue;
}
else {
    break;
}
于 2013-11-11T15:29:12.673 回答