2012-07-14 79 views
0

我正在使用卷曲下载大文件,但我不认为缓冲区已被清空,因为ram里程不断增加,直到达到100%,这里是我使用的代码。在卷曲调用后清空内存

如果我关闭并打开卷曲会有帮助?

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 

while($start_range <= $end_range) { 
if(($start_range + 999999) > $end_range) $range = $start_range.'-'; 
else $range = $start_range.'-'.($start_range + 999999); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_REFERER, $url); 

curl_setopt($ch,CURLOPT_HTTPHEADER,array("ETag: $rddash")); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); 
curl_setopt($ch, CURLOPT_RANGE,$range); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1'); 
if ($tmp = curl_exec($ch)) $start_range +=1000000; 
echo $tmp; 
flush(); 
} 
curl_close($ch); 
+0

也许我错过了一些重要的东西,但什么是你想用** **很长的循环中如此多的卷曲要求?用cURL执行DDoS攻击? – brezanac 2012-07-14 16:47:58

+0

不是所有的人,我说它在第一句话,我试图下载大文件 – EGN 2012-07-14 17:27:22

回答

2
curl_close(), takes a Curl resource as its only parameter, 
closes the Curl session, then frees up the associated memory. 
+0

所以你说我必须每次关闭卷曲并重新打开它? – EGN 2012-07-14 16:47:53