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


how to skip elements in php array list

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

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

使用 continue

继续

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

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

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

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