2013-11-11 5 views
0

Я использую модуль net_ssh2 php для входа на серверы и получения файла для сбора данных в режиме реального времени. Все серверы имеют одинаковое имя пользователя и пароль. Проблема, с которой я столкнулся, заключается в том, что, если по какой-либо причине один из серверов отключен или имеет другой пароль, мой скрипт останавливается. Мне нужен сценарий, чтобы пропустить проблемный сервер и продолжить обработку других серверов в массиве.Как пропустить элементы в списке массивов php

Вот мой текущий 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'); 
     } 

Как бы пропустить серверы в массиве серверов, которые я не смог подключиться и продолжить обработку других?

ответ

5

Использование continue:

продолжает используется в зацикливании структуры, чтобы пропустить остаток текущей итерации цикла и продолжить выполнение при оценке состояния, а затем начало следующей итерации.

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

Если вы хотите, чтобы ваш цикл до конца, когда вы нашли успешное соединение с сервером вы будете использовать break тоже:

if (!$ssh->login('username', 'password')) { 
    continue; 
} 
else { 
    break; 
} 
Смежные вопросы