1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| $urls = [ "cn.bing.com", "cn.bing.com", "cn.bing.com", "cn.bing.com", "cn.bing.com", "cn.bing.com", "cn.bing.com", "cn.bing.com", "cn.bing.com", "cn.bing.com", ];
$rolling_window = count($urls); $master = curl_multi_init(); $curl_arr = array(); $std_options = array( CURLOPT_FOLLOWLOCATION => true, CURLOPT_MAXREDIRS => 5, CURLOPT_RETURNTRANSFER => true, );
$options = $std_options; for ($i = 0; $i < $rolling_window; $i++) { $ch = curl_init(); $options[CURLOPT_URL] = "http://" . $urls[$i]; curl_setopt_array($ch, $options); curl_multi_add_handle($master, $ch); }
$result = [];
do { while (($execrun = curl_multi_exec($master, $running)) == CURLM_CALL_MULTI_PERFORM); if ($execrun != CURLM_OK) { break; }
while ($done = curl_multi_info_read($master)) { $info = curl_getinfo($done['handle']); $output = curl_multi_getcontent($done['handle']); var_dump(strlen($output)); curl_multi_remove_handle($master, $done['handle']); } } while ($running); curl_multi_close($master);
|