提问者:小点点

PHP ftp_nlist()即使在被动模式下也返回false[重复]


我正在尝试使用以下代码连接到ftp_nlist()服务器:

$ftpStream = ftp_connect($host,$port);

if($ftpStream!=false)
{
    echo 'ftp_connect() worked </br>';
    echo 'Hostname = ' . $host . '</br>';
    $login=ftp_login($ftpStream,$username,$password);
    if($login!=false)
    {
        echo 'Logged in </br>';
        $pasvMode = ftp_pasv($ftpStream, true);
        if($pasvMode!=false)
        {
            echo 'Passive mode </br>';
            $nlist=ftp_list($ftpStream,'.');
            var_dump($nlist);
        }

        else
            echo 'ftp_pasv() failed </br>';
    }
    else
         echo 'Failed to log in </br>';
}
else
    echo 'ftp_connect() failed </br>';

我已成功连接并登录,被动模式也已激活,但ftp_nlist()仍返回false。您知道FTP服务器是否可以禁止某些命令(如FTP_nlist()、FTP_rawlist()…)因为我可以从FileZilla中获取所有信息,而从PHP中什么也得不到。

我有一些答案,但我无法解决问题:

我可以用PHP连接到FTP服务器,但即使在被动模式下也不能使用FTP列表

我不能使用PHP在FTP服务器上工作,连接正常,但我不能获取文件或其他东西。它与FileZilla一起工作

谢谢你


共1个答案

匿名用户

第二个参数用于打开或关闭被动模式。因为您使用了false,所以被动模式被关闭。将其更改为:

$pasvMode = ftp_pasv($ftpStream, true);