php FTP登录检查

时间:2014-05-01 13:18:14

标签: php ftp

我有一些ftp服务器,我为一家工程公司管理。其中一些ftp服务器通过php接口设置为数据备份服务器。 我每天做两次维护,因此我停止了ftp上的ftp守护进程(proftpd) 服务器我正在进行维护。

然而,php应用程序工作的一个要求是登录每个ftp服务器,下载统计文件(邮寄给CEO)。目前,如果proftpd在任何ftp服务器上停止,并且php应用程序正在运行,则在尝试登录(停止)ftp服务器时,php会挂起(通过浏览器)。

我已将超时设置为90(默认)秒至5秒,但相同 事情发生了。

当php在停止的ftp服务器上登录时,如何防止php挂起浏览器?

任何指针?

谢谢

丹尼

1 个答案:

答案 0 :(得分:0)

您可以使用fsockopen()进行预先检查,并将其连接状态存储在会话中(以便不对每次重新加载进行检查)。

<?php 
session_start();

if(!isset($_SESSION['ftp_connectable'])){
    $sock = @fsockopen('ftp.yourserver', 21, $errno, $errstr, 1);//< 1sec timeout
    if ($sock) {
        $_SESSION['ftp_connectable'] = true;
    }else{
        $_SESSION['ftp_connectable'] = false; 
    }
    @fclose($sock);
}

if($_SESSION['ftp_connectable'] === true){
    echo '<span style="color:red">FTP Server is connectable!</span>';
}else{
    echo '<span style="color:red">FTP Server is not connectable!</span>';
}

然后根据$_SESSION['ftp_connectable']显示服务器已关闭的通知您可以添加 再试一次 按钮,清除$_SESSION['ftp_connectable']变量并尝试& #39;再次连接状态。