2011-12-12 40 views
2

大多數php/curl示例都建議創建捲曲cookie,而我正在使用它來抓取網頁。 這裏是腳本http://www.php.net/manual/en/ref.curl.php#93163,這裏是相關的摘錄:php/curl:刪除使用CURLOPT_COOKIEJAR創建的cookie

$url = str_replace("&", "&", urldecode(trim($url))); 

$cookie = tempnam ("/tmp", "CURLCOOKIE"); 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1"); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_ENCODING, ""); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); # required for https urls 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); 
curl_setopt($ch, CURLOPT_MAXREDIRS, 10); 
$content = curl_exec($ch); 
$response = curl_getinfo($ch); 
curl_close ($ch); 

現在我注意到在/ tmp目錄3 GB的由PHP創建捲曲的cookie文件。

我以爲這是自動清除的印象,有可能做到這一點從PHP /捲曲?

回答

5

首先必須是unset,然後$ ch然後調用@unlink命令。

+2

我有這個完全相同的問題,並發現我無法取消鏈接文件。經過一番實驗後,我發現在調用unlink()刪除cookie jar文件之前,必須調用curl_close($ ch)。也許未設置($ ch)導致捲曲手柄也被關閉? – Josh

+0

@Josh感謝這個命令:curl_close($ ch) – vuhung3990

-1

你可能delete的文件。

+2

但是你只能在調用curl_close($ ch)之後刪除這些文件。 Yousha Aleayoub在他的回答中報告說,未設置($ ch)也將允許它們被刪除。 – Josh