即使在被动模式下,PHP ftp_nlist()也返回false

时间:2018-05-24 08:57:16

标签: php ftp

我尝试使用以下代码连接到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中的任何内容。

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

I can connect to an FTP server with PHP but can't ftp_nlist even with passive mode

I can't work on a FTP server with PHP, the connection works, but I can't get files, or other things. It works with FileZilla

谢谢

1 个答案:

答案 0 :(得分:0)

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

$pasvMode = ftp_pasv($ftpStream, true);
相关问题