如何跳过php数组列表中的元素

时间:2013-11-11 15:28:13

标签: php phpseclib

我使用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');
        }

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

1 个答案:

答案 0 :(得分:5)

使用continue

  在循环结构中使用

continue 来跳过当前循环迭代的其余部分,并在条件评估和下一次迭代开始时继续执行。

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

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

if (!$ssh->login('username', 'password')) {
    continue;
}
else {
    break;
}