继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

php multi curl

30秒到达战场
关注TA
已关注
手记 467
粉丝 98
获赞 576

<?php 

function multiCurl($res,$options=""){ 

if(count($res)<=0) return False; 

$handles = array(); 

if(!$options) // add default options 

$options = array( 

CURLOPT_HEADER=>0, 

CURLOPT_RETURNTRANSFER=>1, 

); 

// add curl options to each handle 

foreach($res as $k=>$row){ 

$ch{$k} = curl_init(); 

$options[CURLOPT_URL] = $row['url']; 

curl_setopt_array($ch{$k}, $options); 

$handles[$k] = $ch{$k}; 

$mh = curl_multi_init(); 

foreach($handles as $k => $handle){ 

curl_multi_add_handle($mh,$handle); 

//echo "<br>adding handle {$k}"; 

$running_handles = null; 

//execute the handles 

$cme=null;

$status=null;

do { 

$status_cme = curl_multi_exec($mh, $running_handles); 

} while ($cme == CURLM_CALL_MULTI_PERFORM); 

while ($running_handles && $status_cme == CURLM_OK) { 

if (curl_multi_select($mh) != -1) { 

do { 

$status_cme = curl_multi_exec($mh, $running_handles); 

// echo "<br>''threads'' running = {$running_handles}"; 

} while ($status == CURLM_CALL_MULTI_PERFORM); 

foreach($res as $k=>$row){ 

$res[$k]['error'] = curl_error($handles[$k]); 

if(!empty($res[$k]['error'])) 

$res[$k]['data']  = ''; 

else 

$res[$k]['data']  = curl_multi_getcontent( $handles[$k] );  // get results 

// close current handler 

curl_multi_remove_handle($mh, $handles[$k] ); 

curl_multi_close($mh); 

return $res; // return response 

$res = array( 

"11"=>array("url"=>"http://api.211.100.56.140.xip.io/shows.json/263?appKey=strKfLS2Hecp"), 

"12"=>array("url"=>"http://api.211.100.56.140.xip.io/shows.json/263?appKey=strKfLS2Hecp"), 

); 

print_r(multiCurl($res)); 

?>


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP