请注意,您可能需要继续调用 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 环境下。希望这对某些人有所帮助。