url в url

1.09K
.
Золотце
# Krite (19.12.2013 / 16:35)
bravay, Да вначале скобки убрать надо []
$urls = array('http://site.ru',
'http://site.com',
'http://site.net');
Да точно, в этом дело было
Работает.Спасибо.
Правда немного не так как хотелось, но все же
.
Золотце
# Krite (19.12.2013 / 16:35)
bravay, Да вначале скобки убрать надо []
$urls = array('http://site.ru',
'http://site.com',
'http://site.net');
еще один вопросик если можено. Для того чтоб два первых сайта обработались, но не отображались, что нужно дописать в код? Простым exit() нельзя обойтись?
.
Ну вообще там массив выводится, обработать можно как хочешь
вместо этого echo implode('', $res);
можно, например: echo end($res);
.
Золотце
# Krite (20.12.2013 / 07:19)
Ну вообще там массив выводится, обработать можно как хочешь
вместо этого echo implode('', $res);
можно, например: echo end($res);
спасибо, вы мне очень помогли
.
Добавлено: 26.05.2017 / 20:31
# Krite (19.12.2013 / 14:24)
Если надо 3 сайта сразу загрузить, то можно использовать multi curl
$urls[] = array('http://site.ru',
'http://site.com',
'http://site.net');
$mh = curl_multi_init();

foreach ($urls as $i => $
Спасбо за мануал, только вот проблема возникла.
Использую чуть уть переделный код для работы с АПИ вк.
// мультікурл для запитів до вк

function sfdv_multi_curl ($urls,$post_datas){
 
//отримати два массиви $urls, $pos_datas
$mh = curl_multi_init(); 
 //curl_multi_setopt($mh,CURLMOPT_MAX_HOST_CONNECTIONS,1);
foreach ($urls as $i => $url) { 
   $conn[$i]=curl_init($url); 
   curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1);  //ничего в браузер не давать  
   curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,1); //таймаут соединения  
   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]);// добавляем переменные 
   curl_multi_add_handle ($mh,$conn[$i]); 
} 
do { curl_multi_exec($mh,$active); } while ($active);//Пока все соединения не отработают  
for ($i=0; $i<count($urls); $i++) { 

   if(sfdv_check_error_execute(json_decode(curl_multi_getcontent($conn[$i]),TRUE))=="OK") {              
   $res[$i]=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;
}
} 
curl_multi_close($mh); 
return $res;
}

ысе работает супер, но у АПИ вк есть ограничение не болше 3-х запросов в секунду.
как можно ето реализовать?

Добавлено: 26.05.2017 / 20:33
насколько я понл "момент стучания к вк" тут
do { curl_multi_exec($mh,$active); } while ($active);

просто добавление usleep (400000)дет не такой результат как мне надо
.
(\/)____o_O____(\/)
_endrju_, норм так копнул =)
.
(\/)____o_O____(\/)
_endrju_, в цикле for поставь проверку, если $i % 3 , добавь sleep(1)
.
Koenig, Із задоволенням тобі відповім, гг та да, курил кучу мануалов, потом думаю зайду сюда, может тут кто писал че о мльтикурл )
получаетс что вызов вк пи генерирует
curl_multi_getcontent($conn[$i])
.
_endrju_
Koenig, не помогло ?(
for ($i=0; $i<count($urls); $i++) {
   if ($i%3) {sleep(1);}

   if(sfdv_check_error_execute(json_decode(curl_multi_getcontent($conn[$i]),TRUE))=="OK") {              
   $res[$i]=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;
}

виникла помилкаToo many requests per second
.
(\/)____o_O____(\/)
_endrju_, $i%3==0
Всего: 50