2011-05-16 54 views
0

我一直在试图找到最好的方法来从其他服务器使用PHP下载大型文件,但似乎我失败了,或者我不完全满意。最好的方法来下载远程文件

所以我的问题是,什么是使用较少的内存下载大文件最快的方法?它卷曲吗? fopen?如果它是打开的,使用什么策略?

谢谢。

+0

您下载的处理在PHP中的文件,或者只是下载所以他们保存在某个地方。如果只是为了存储而下载,那么在外部执行wget并让它在后台运行,这会从等式中移除PHP。 – 2011-05-16 16:14:37

回答

1

最快可能会使用套接字,但这就像再次发明轮子。 你应该确实使用cURL。我发现这个片段在网上,让你不使用你所有的记忆:

set_time_limit(0); 

$fp = fopen (dirname(__FILE__) . '/file.ext', 'w+'); // Output file 
$ch = curl_init('http://www.example.com/largefile.ext'); // Input file 
curl_setopt($ch, CURLOPT_TIMEOUT, 50); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_exec($ch); 
curl_close($ch); 
fclose($fp); 

来源:http://www.webdigity.com/index.php?action=tutorial;code=45

1

fopen不可靠,因为它要求您启用allow_url_fopen(由于安全考虑,通常会禁用它)。 cURL的选择远远多于fopen。