我一直在试图找到最好的方法来从其他服务器使用PHP下载大型文件,但似乎我失败了,或者我不完全满意。最好的方法来下载远程文件
所以我的问题是,什么是使用较少的内存下载大文件最快的方法?它卷曲吗? fopen?如果它是打开的,使用什么策略?
谢谢。
我一直在试图找到最好的方法来从其他服务器使用PHP下载大型文件,但似乎我失败了,或者我不完全满意。最好的方法来下载远程文件
所以我的问题是,什么是使用较少的内存下载大文件最快的方法?它卷曲吗? fopen?如果它是打开的,使用什么策略?
谢谢。
最快可能会使用套接字,但这就像再次发明轮子。 你应该确实使用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
fopen不可靠,因为它要求您启用allow_url_fopen(由于安全考虑,通常会禁用它)。 cURL的选择远远多于fopen。
您下载的处理在PHP中的文件,或者只是下载所以他们保存在某个地方。如果只是为了存储而下载,那么在外部执行wget并让它在后台运行,这会从等式中移除PHP。 – 2011-05-16 16:14:37