我尝试使用以下代码连接到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
谢谢
答案 0 :(得分:0)
第二个参数用于打开或关闭被动模式。因为您使用了false,所以被动模式被关闭。将其更改为:
$pasvMode = ftp_pasv($ftpStream, true);