我想从服务器列出目录中的文件(.txt中的日志文件),而ftp_nlist()函数无法正常工作。
[首先,函数ftp_nlist()返回false,我在Internet上进行搜索,发现由于防火墙或NAT路由器而必须启用被动模式,我已启用被动模式。
代码:
include("/var/www/luvinsastroi.mtxserv.com/public_html/logs/password_protect.php");
include 'config.php';
$ftp_connection = ftp_connect($host,$port);
ftp_login($ftp_connection, $user, $password);
if ($passiveftp == 1) {
ftp_pasv($ftp_connection, true);
}
echo "<b>Folder:</b> ".$path."<br>";
if (ftp_chdir($ftp_connection, "".$path."")) {
echo "Successfully accessed log folder.";
} else {
echo "Couldn't access log folder";
}
$contents = ftp_nlist($ftp_connection, ".");
我希望列出$ path文件夹中包含的所有文件(日志文件),并且没有附加内容(没有被动模式),而在被动模式下,我得到了错误:Warning: ftp_nlist(): php_connect_nonb() failed: Operation now in progress (115)
将行指针放在“ $contents = ftp_nlist($ftp_connection, ".");
”上,没有列出文件。
ftp_set_option($ftpconn, FTP_USEPASVADDRESS, false);
此代码行在设置连接的无源性之前ftp_pasv($ftpconn, true);
解决了我的问题,如果不是防火墙问题,也许对您来说也是一样。