PHP多线程方案

1,pthreads扩展方案,结果耗损内存巨大不理想,最好少用
2,php自带curl:(满足场景要求,稳定)
function Mcurl($urls){
p t h r e e d = c u r l m u l t i i n i t ( ) ; f o r e a c h ( pthreed = curl_multi_init(); foreach ( urls as $key => $urlInfo) {
c o n n [ conn[ key]=curl_init( u r l I n f o [ u r l ] ) ; c u r l s e t o p t ( urlInfo['url']); curl_setopt( conn[ k e y ] , C U R L O P T H T T P H E A D E R , a r r a y ( " C o n t e n t t y p e : a p p l i c a t i o n / j s o n ; c h a r s e t = u t f 8 " , A c c e p t E n c o d i n g : g z i p ) ) ; c u r l s e t o p t ( key], CURLOPT_HTTPHEADER, array("Content-type: application/json; charset=utf-8",'Accept-Encoding: gzip')); curl_setopt( conn[ k e y ] , C U R L O P T U S E R A G E N T , " e l e m e o p e n a p i p h p s d k " ) ; c u r l s e t o p t ( key], CURLOPT_USERAGENT, "eleme-openapi-php-sdk"); curl_setopt( conn[ k e y ] , C U R L O P T E N C O D I N G , " g z i p " ) ; c u r l s e t o p t ( key], CURLOPT_ENCODING, "gzip"); curl_setopt( conn[ k e y ] , C U R L O P T C U S T O M R E Q U E S T , P O S T ) ; c u r l s e t o p t ( key], CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt( conn[ k e y ] , C U R L O P T P O S T F I E L D S , j s o n e n c o d e ( key], CURLOPT_POSTFIELDS,json_encode( urlInfo[‘data’]));
curl_setopt( c o n n [ conn[ key], CURLOPT_RETURNTRANSFER,1);
curl_setopt( c o n n [ conn[ key], CURLOPT_TIMEOUT,5);
curl_setopt( c o n n [ conn[ key], CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt( c o n n [ conn[ key], CURLOPT_SSL_VERIFYHOST, 0);
curl_multi_add_handle ( p t h r e e d , pthreed, conn[KaTeX parse error: Expected 'EOF', got '}' at position 11: key]); }̲ do {mrc = curl_multi_exec( p t h r e e d , pthreed, active);} while ( m r c = = C U R L M C A L L M U L T I P E R F O R M ) ; w h i l e ( mrc == CURLM_CALL_MULTI_PERFORM); while ( active and KaTeX parse error: Expected '}', got 'EOF' at end of input: …l_multi_select(pthreed) != -1) {
do { m r c = c u r l m u l t i e x e c ( mrc = curl_multi_exec( pthreed, KaTeX parse error: Expected 'EOF', got '}' at position 9: active);}̲ while (mrc == CURLM_CALL_MULTI_PERFORM);
}
}
foreach ($urls as $key => $url) {
r e s [ res[ key]=curl_multi_getcontent( c o n n [ conn[ key]);
curl_close( c o n n [ conn[ key]);
}
return $res;
}

猜你喜欢

转载自blog.csdn.net/weixin_43294972/article/details/87912062
今日推荐