PHP ftp_connect超时参数不起作用

问题描述 投票:1回答:1
$conn = ftp_connect($server['host'], $server['port'], 5);
ftp_get(@$conn, 'a.txt', 'a.txt', FTP_ASCII);

上面的代码对于一个大的a.txt文件运行30分钟,并且尽管设置了5秒的超时设置也从未结束,根据ftp_connect手册,“它以秒为单位指定了所有后续网络操作的超时时间。”

请咨询

php ftp timeout
1个回答
0
投票

如果要中止下载,时间太长,则无法使用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
© www.soinside.com 2019 - 2024. All rights reserved.