PHP FTP连接超时,而工作-重新连接?检测到


php ftp connection timed out while working - reconnect? detect?

是否可以检测ftp资源是否断开连接或超时?

示例脚本

<?php
$connection = ftp_connect('127.0.0.1');
ftp_login($connection, '123', '456');
sleep(660); // proftpd has 600 as default no transfer timeout
ftp_chdir($connection, '/');
ftp_close($connection);

然后我们得到一个警告

Warning:
ftp_chdir():
    No transfer timeout (600 seconds):
        closing control connection in line 5

是否可以检查是否断开连接或超时?

if(!$connection)

不工作,因为资源存在…但是资源超时:/

你可以这样写

if(is_array(ftp_nlist($connection, "."))){
    echo "Connected";
}

引用:http://php.net/manual/en/function.is-array.php

http://php.net/manual/en/function.ftp-nlist.php