ftp_systype does NOT appear to be a reliable way to detect whether it is connected, as at least for a local network connection I have here to a Windows ftp server, it can succeed without a working connection (is it cached?). Don't know if this is specific to our ftp server - perhaps it doesn't behave well when it times out links.
ftp_systype
(PHP 4, PHP 5)
ftp_systype — Возвращает тип операционной системы FTP сервера
Описание
string ftp_systype
( resource $ftp_stream
)
Возвращает тип операционной системы FTP сервера.
Список параметров
- ftp_stream
-
Идентификатор соединения с FTP сервером
Возвращаемые значения
Возвращает тип операционной системы FTP сервера, или FALSE при возникновении ошибки.
Примеры
Пример #1 Пример использования ftp_systype()
<?php
// установка соединения
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'user', 'password');
// получение типа системы
if ($type = ftp_systype($ftp)) {
echo "example.com использует $type\n";
} else {
echo "Не удалось определить тип системы";
}
?>
Вышеприведенный пример выведет (например):
example.com использует UNIX
ftp_systype
jgbreezer at NOSPAM dot gmail dot com
07-Apr-2008 04:21
07-Apr-2008 04:21
Buckwheat469 at hotmail dot com
26-Jul-2006 09:41
26-Jul-2006 09:41
ftp_systype can be a good way of checking the state of a connection, since PHP doesn't have a better system to check the state of an ftp connection (is_connected would be nice).
if (!($type = ftp_systype($conn_id))) {
echo "FTP connection has failed! Trying again.\n";
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);
}
