我一直在尝试找到使用 PHP 从其他服务器下载大文件的最佳方法,但似乎我失败了,或者我不完全满意。
所以我的问题是,使用较少的RAM下载大文件的最快方法是什么? 是卷曲的吗? 如果是 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 的选择要多得多。