使用PHP测试FTP连接

Bat*_*fan 18 php ftp

我使用下面的PHP脚本来测试FTP连接.目前,如果成功连接,则打印文件数组.

如果它能够连接,我怎么能让它也显示一条消息?就像'连接成功'.

$con = ftp_connect($server) or die("Couldn't connect"); 
ftp_login($con,  $username,  $password);
print_r(ftp_nlist($con, "."));
ftp_close($con);
Run Code Online (Sandbox Code Playgroud)

编辑

我现在有它工作但是,我已经在MediaTemple服务器上的几个域上测试了它们,它们似乎都超时了.然而,它适用于我尝试过的所有其他领域.他们的服务器是否阻止了请求?

mr.*_*. w 25

ftp_connect()和ftp_login()都返回一个表示成功的布尔值.因此,如果我正确地解释,这样的事情应该做你想要的事情:

try {
    $con = ftp_connect($server);
    if (false === $con) {
        throw new Exception('Unable to connect');
    }

    $loggedIn = ftp_login($con,  $username,  $password);
    if (true === $loggedIn) {
        echo 'Success!';
    } else {
        throw new Exception('Unable to log in');
    }

    print_r(ftp_nlist($con, "."));
    ftp_close($con);
} catch (Exception $e) {
    echo "Failure: " . $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)


Jak*_*kub 14

只需检查是否ftp_nlist()为阵列.

喜欢:

echo is_array(ftp_nlist($con, ".")) ? 'Connected!' : 'not Connected! :(';

参考文献:


sim*_*aun 6

嘿.我是新来的,所以也许发布这个迟到的答案不受欢迎,但它可能会帮助将来的人.

它不使用MediaTemple的原因是因为它们只接受被动连接.

登录后ftp_login(),只需拨打电话ftp_pasv($ftp, TRUE);即可设置.