PHP ftp_nlist() 即使在被动模式和不同的用户下也返回 bool(false)

PHP ftp_nlist() returning bool(false) even with passive mode and different users

我目前正在制作一个脚本来备份我服务器上的文件,但遇到了一个重大问题。大约 30 分钟前,我能够使用相同的脚本进行连接、列出我的文件并下载它们。但是现在当我尝试连接时,它连接了,就是这样,我不能 ftp_nlist 文件,因为当我这样做时只是 returns bool(false)。我在其他一些 post 上读到我应该尝试使用 ftp_pasv 将被动模式设置为 true 但它没有改变任何东西。我也尝试过其他做同样事情的用户。我尝试在 filezilla 上使用凭据,它已连接并允许我毫无问题地下载。任何帮助将不胜感激,我将 post 下面的代码。

PHP:

连接到 FTP

$ftp_server = "Hidden for security";
$ftp_user = "Hidden for security";
$ftp_pass = "Hidden for security";
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); 
ftp_pasv($conn_id, true);

在 FTP

上获取文件名
$contents = ftp_nlist($conn_id, ".");
$rm = array(0, 1, 2, 3,);
foreach($rm as $value) {
    unset($contents[$value]);
}
$contents = array_values($contents);

获取本地主机上的文件名

$dir = scandir("images/");
$rmval = array(0, 1, 2);
foreach ($rmval as $val) {
    unset($dir[$val]);
}
$dir = array_values($dir);

尝试登录

if (ftp_login($conn_id, $ftp_user, $ftp_pass)) {
    //echo "Connected";
    $counter = 0;
    var_dump($contents);

    /*foreach ($ftp_content as $file) {
        ftp_get($conn_id, "images/" . $ftp_content[$counter], $ftp_content[$counter], FTP_BINARY);
        $counter++;
    }*/
} else {
    echo "Couldn't Connect";
}

关闭FTP连接

ftp_close($conn_id); 

问题是我试图在与 FTP 服务器建立连接之前列出我的文件。在 $conn_id 之后添加 $login_result = ftp_login($conn_id, $ftp_user, $ftp_pass) 解决了我的问题。现在我可以评估它是真还是假,并且 运行 根据结果使用不同的代码。