$conn = ftp_connect($server['host'], $server['port'], 5);
ftp_get(@$conn, 'a.txt', 'a.txt', FTP_ASCII);
上面的代码对于一个大的a.txt文件运行30分钟,并且尽管设置了5秒的超时设置也从未结束,根据ftp_connect手册,“它以秒为单位指定了所有后续网络操作的超时时间。”
请咨询
如果要中止下载,时间太长,则无法使用ftp_get
,因为它正在阻止。
您有两个选择。要么使用ftp_nb_get
:
ftp_nb_get
或$ret = ftp_nb_get($conn_id, $local_path, $remote_path, FTP_BINARY);
while ($ret == FTP_MOREDATA)
{
if (takes_too_long) break;
$ret = ftp_nb_continue($conn_id);
}
:
FTP URL protocol wrapper