Просмотр поста

.
_endrju_
Добавлено: 27.05.2017 / 20:01
# Koenig (27.05.2017 / 17:32)
_endrju_, еак ты кусок вырезал из массива же
не совсем но это быдло код наверно
function sfdv_multi_curl ($urls,$post_datas){
 
//отримати два массиви $urls, $pos_datas
$mh = curl_multi_init(); 
 $offset = 0;
 $count_get_multicurl = count($urls)/8;
 for($y=0;$y<$count_get_multicurl;$y++){
  $urls_output = array_slice($urls,$offset,8,FALSE);
foreach ($urls_output as $i => $url) { 
   $conn[$i]=curl_init($url); 
   curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1);  //ничего в браузер не давать  
   curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,2); //таймаут соединения  
   curl_setopt($conn[$i], CURLOPT_USERAGENT, 'Opera/9.80 (Windows NT 6.1; WOW64; U; ru) Presto/2.10.289 Version/12.01');
   curl_setopt($conn[$i], CURLOPT_POST, 1); // указываем, что у нас POST запрос 
   curl_setopt($conn[$i], CURLOPT_POSTFIELDS, $post_datas[$i+$offset]);// добавляем переменные 
   curl_multi_add_handle ($mh,$conn[$i]); 
} 

do {curl_multi_exec($mh,$active); } while ($active);//Пока все соединения не отработают
 
for ($i=0; $i<count($urls_output); $i++) {
   

   if(sfdv_check_error_execute(json_decode(curl_multi_getcontent($conn[$i]),TRUE))=="OK") {              
   $res[]=json_decode(curl_multi_getcontent($conn[$i]),TRUE);        //ответ сервера в переменную  
   curl_multi_remove_handle($mh,$conn[$i]); 
   curl_close($conn[$i]); 
}else{
	$error = sfdv_check_error_execute(json_decode(curl_multi_getcontent($conn[$i]),TRUE));
	$res= array("error"=>"error","error_msg"=>"Під час виклику функції мультікурл виникла помилка".$error['error_msg']." ");
	break;
}
} 
$offset = $offset+8;
}
curl_multi_close($mh);
return $res;
}


Добавлено: 27.05.2017 / 20:04
если я правильно понял в класе ты не ипользовал мультикурл? поетомумедленнее?