请注意,您可能需要不断调用 ftp_nb_continue 以完成下载。例如,如果您执行以下操作
<?php
ftp_nb_get($conn,$localfile,$remotefile,FTP_BINARY)
// 执行长时间工作
while(ftp_nb_continue($conn)!=FTP_FINISHED){}
?>
您的本地文件可能只包含几千字节,并且后续的 ftp_nb_continue 会不断发出没有更多数据的警告(可能是由于连接超时)。
因此,您可能需要改为执行以下操作
<?php
$dl=ftp_nb_get($conn,$localfile,$remotefile,FTP_BINARY)
// 部分长时间工作
if(ftp_nb_continue($conn)==FTP_MOREDATA) {}
// 部分长时间工作
if(ftp_nb_continue($conn)==FTP_MOREDATA) {}
// 继续执行此操作,直到完成长时间工作
while(ftp_nb_continue($conn)==FTP_MOREDATA){}
?>
这发生在我的 Windows XP + PHP 5.3.8 在 CLI 下。希望这对某人有帮助。