脚本宝典收集整理的这篇文章主要介绍了PHP cURL同步和异步,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有可用于发送数据ASYNC的cURL参数或函数,而不是等待目标URL的响应继续执行代码?
这是我现在的代码,默认情况下请求是同步的,脚本会等待,直到发送目标URL的响应.
$ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_RETURNtransfer,CURLOPT_POSTFIELDS,$data); $result = curl_exec($ch); curl_close($ch);
我的应用程序有两种情况:
1)数据需要传递到辅助服务器,一旦确认服务器收到它,继续在我的应用程序中执行代码;
2)数据传递到辅助服务器,但传递的信息不是那么重要,因此我们不需要等待服务器收到它的确认,以便继续.
谢谢
<?PHP // create both cURL resources $ch1 = curl_inIT(); $ch2 = curl_init(); // set URL and other apPRopriate options curl_setopt($ch1,"http://lxr.PHP.net/"); curl_setopt($ch1,CURLOPT_HEADER,0); curl_setopt($ch2,"http://www.PHP.net/"); curl_setopt($ch2,0); //create the multiple cURL handle $mh = curl_multi_init(); //add the two handles curl_multi_add_handle($mh,$ch1); curl_multi_add_handle($mh,$ch2); $active = null; //execute the handles do { $mrc = curl_multi_exec($mh,$active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); while ($active && $mrc == CURLM_OK) { if (curl_multi_select($mh) != -1) { do { $mrc = curl_multi_exec($mh,$active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); } } //close the handles curl_multi_remove_handle($mh,$ch1); curl_multi_remove_handle($mh,$ch2); curl_multi_close($mh); ?>
以上是脚本宝典为你收集整理的PHP cURL同步和异步全部内容,希望文章能够帮你解决PHP cURL同步和异步所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。