kapec gan ne Posted June 3, 2012 Report Share Posted June 3, 2012 (edited) sveiki! problēma tāda curl izpildoties ciklā nem vairāk un vairāk ram lidz tas beidzas :{ nepabeidzot to pati funkcija kuru izmantoju ciklā: function grab($url = ''){ if(!$url) return 0; $curl = curl_init(); $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; $header[] = "Cache-Control: max-age=0"; $header[] = "Connection: keep-alive"; $header[] = "Keep-Alive: 300"; $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; $header[] = "Accept-Language: en-us,en;q=0.5"; $header[] = "Pragma: "; curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1'); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_REFERER, false); curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); curl_setopt($curl, CURLOPT_AUTOREFERER, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_TIMEOUT, 300); ob_start(); return curl_exec ($curl); ob_end_clean(); curl_close ($curl); unset($curl); } kapec curl neatbrivo atminu? stav memory_limit -1 un izmanto 2GB Edited June 3, 2012 by kapec gan ne Quote Link to comment Share on other sites More sharing options...
404 Posted June 3, 2012 Report Share Posted June 3, 2012 (edited) Te varētu būt 2 iemesli: 1) Tu ciklā veido entās cURL sesijas. Tā vietā var izmantot vienu,pirms cikla sadefinējot headerus + opcijas,un tālāk mainot tikai url: function move($url) { global $ch; curl_setopt($ch, CURLOPT_URL, $url); return curl_exec ($ch); } foreach($urls as $url) { $content = move($url); } 2) Return atrodas pirms ob_end_clean(); curl_close ($curl); unset($curl); Līdz ar to beigas neizpildās,un konekcijas netiek slēgtas. Edited June 3, 2012 by 404 Quote Link to comment Share on other sites More sharing options...
werd Posted June 3, 2012 Report Share Posted June 3, 2012 http://stackoverflow.com/questions/4498976/php-curl-memory-leak-when-using-curlopt-returntransfer Quote Link to comment Share on other sites More sharing options...
kapec gan ne Posted June 3, 2012 Author Report Share Posted June 3, 2012 Te varētu būt 2 iemesli: 1) Tu ciklā veido entās cURL sesijas. Tā vietā var izmantot vienu,pirms cikla sadefinējot headerus + opcijas,un tālāk mainot tikai url: function move($url) { global $ch; curl_setopt($ch, CURLOPT_URL, $url); return curl_exec ($ch); } foreach($urls as $url) { $content = move($url); } 2) Return atrodas pirms ob_end_clean(); curl_close ($curl); unset($curl); Līdz ar to beigas neizpildās,un konekcijas netiek slēgtas. paldies! primais variants izskatās ka būs īstais :) curl_close pirms return neko nemainija... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.