利用FTP函数采集数据的超时问题。。

想作一个局域网内的WEB式ftp搜索的东西,希望程序定期采集站点的数据写入数据库方便查询。

[复制到剪切板]
CODE:
$ftps = @ftp_connect($host,$port,$timeout=5);
$login_result = @ftp_login($ftps,$user,$pass);
if(!
$ftps || !$login_result){exit('Connect Failed!');}
update_db($ftps,$host,$port,$user,$pass);

function 
update_db($ftps,$host,$port,$user,$pass){

//这里作了一个超时处理,利用ftp_systype()检查连接状态
if(!($systype = @ftp_systype($ftps))){
echo 
"<br>disconnect! Reconnecting!...<br>";
for(
$i=0;$i<5;$i++){//重试连接5次
        
if(!($systype = @ftp_systype($ftps))){
                if((
$ftps = @ftp_connect($host,$port,$timeout=5)) && !$l_result){
                        
$l_result = @ftp_login($ftps,$user,$pass);
                }
        }
        if(
$ftps && $l_result){
                continue;
        }
}
//以下做目录文件等处理,写入数据库.略去
} ;

可是遇到一个会话超时5分钟的站点,仍然执行到5分钟就断掉了,导致站点的数据采集不完全。
如何才能有效的判断连接状态,及时的重连接进行连续完整的采集呢?

网上遍搜也不得其法,希望高人指点,万分感谢!