Хотя я согласен с логикой в принятом ответе от @Jakub вызова ftp_nlist()
и проверки типа данных с помощью is_array()
, это может быть очень медленным и громоздким с особенно большими, раздутыми каталогами ftp, такими как те, которыми я сейчас являюсь работа над. И мне не нравится идея создания пустой директории только для тестирования, которую позже можно переименовать / удалить, поскольку она считается ненужной, возможно, другим разработчиком или потому, что вы забыли, для чего она там была размещена.
Я использую пассивное ftp-соединение, поэтому для моих целей в сценариях cron, выполнение которых может занять много времени и потенциально может потребоваться переподключение, я обнаруживаю это:
function check_connection_status($conn_id) {
return ftp_pasv($conn_id, true);
}
Повторный вызов ftp_pasv()
не изменит состояния соединения ftp, но он ответит true, если соединение активно, и вошел в систему / false, если нет, вы можете запрограммировать повторное соединение:)