Я делаю простое приложение, которое считывает данные json из 15 разных URL-адресов. У меня есть особая потребность в том, что мне нужно сделать это на сервере. Я использую file_get_contents($url)
.
Поскольку я использую file_get_contents ($ url). Я написал простой скрипт:
$websites = array( $url1, $url2, $url3, ... $url15 ); foreach ($websites as $website) { $data[] = file_get_contents($website); }
и было доказано, что он очень медленный, потому что он ждет первого запроса, а затем выполняет следующий.
Если вы имеете в виду multi-curl, то что-то вроде этого может помочь:
$nodes = array($url1, $url2, $url3); $node_count = count($nodes); $curl_arr = array(); $master = curl_multi_init(); for($i = 0; $i < $node_count; $i++) { $url =$nodes[$i]; $curl_arr[$i] = curl_init($url); curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($master, $curl_arr[$i]); } do { curl_multi_exec($master,$running); } while($running > 0); for($i = 0; $i < $node_count; $i++) { $results[] = curl_multi_getcontent ( $curl_arr[$i] ); } print_r($results);
$nodes = array($url1, $url2, $url3); $node_count = count($nodes); $curl_arr = array(); $master = curl_multi_init(); for($i = 0; $i < $node_count; $i++) { $url =$nodes[$i]; $curl_arr[$i] = curl_init($url); curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($master, $curl_arr[$i]); } do { curl_multi_exec($master,$running); } while($running > 0); for($i = 0; $i < $node_count; $i++) { $results[] = curl_multi_getcontent ( $curl_arr[$i] ); } print_r($results);
Надеюсь, это поможет в некотором роде