PHP FTP连接但不读取文件夹

use*_*829 3 php ftp

我有一个代码,我试图通过 PHP FTP 连接连接到不同的服务器。
我知道我实际上正在连接到服务器。

$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);

var_dump($login);
Run Code Online (Sandbox Code Playgroud)

当我vardump$login,我收到了TRUE

当我尝试上传文件时,出现“上传文件错误”, 因此我尝试仅在连接上拉出文件列表:

$file_list = ftp_nlist($ftp_conn, ".");
var_dump($file_list);
Run Code Online (Sandbox Code Playgroud)

它只是返回bool(false)
我知道连接有文件,因为我可以使用相同的凭据通过 FileZilla 查看它们。

知道可能有什么问题吗?是否可能存在不允许我从共享服务器使用此 PHP 脚本的服务器设置?

Mar*_*ryl 8

的有问题的最典型的原因ftp_listftp_nlistftp_put需要单独FTP数据连接等功能)是PHP默认为激活模式。并且在 99% 的情况下,必须切换到被动模式,才能使目录列表和传输工作。使用ftp_pasv函数

$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass) or die("Login failed");
// turn passive mode on
ftp_pasv($ftp_conn, true) or die("Unable switch to passive mode");
Run Code Online (Sandbox Code Playgroud)

请参阅关于主动和被动 FTP 连接模式的文章