首页 > 开发 > PHP > 正文

php curl批处理实现可控并发异步操作示例

2024-05-04 22:43:23
字体:
来源:转载
供稿:网友

本文实例讲述了php curl批处理实现可控并发异步操作。分享给大家供大家参考,具体如下:

通常情况下 PHP 中的 cURL 是阻塞运行的,就是说创建一个 cURL 请求以后必须等它执行成功或者超时才会执行下一个请求:API接口访问一般会首选CURL

在实际项目或者自己编写小工具(比如新闻聚合,商品价格监控,比价)的过程中, 通常需要从第3方网站或者API接口获取数据, 在需要处理1个URL队列时, 为了提高性能, 可以采用cURL提供的curl_multi_*族函数实现简单的并发.

<?phpinclude 'curl.class.php';function callback($response, $info, $error, $request){ echo 'response:<br>'; print_r($response); echo '<br>' . date("Y-m-d H:i:s") . '   <br>'; echo '<br>' . str_repeat("-", 100) . '<br>';}$USER_COOKIE = (!empty($_REQUEST['cookie'])) ? $_REQUEST['cookie'] : file_get_contents("cookie.txt");$curl = new Curl ("callback");$data = array( array(  'url' => 'http://dyactive2.vip.xunlei.com/com_sign/?game=qmr&type=rec_gametime&referfrom=&rt=0.42521539455332336', //秦美人  'method' => 'POST',  'post_data' => '',  'header' => null,  'options' => array(   CURLOPT_REFERER => "http://niu.xunlei.com/entergame/?gameNo=qmr&fenQuNum=3",   CURLOPT_COOKIE => $USER_COOKIE,  ) ), array(  'url' => 'http://dyactive2.vip.xunlei.com/com_sign/?game=sq&type=rec_gametime&referfrom=&rt=0.42521539455332336', //神曲  'method' => 'POST',  'post_data' => '',  'header' => null,  'options' => array(   CURLOPT_REFERER => "http://niu.xunlei.com/entergame/?gameNo=sq&fenQuNum=41",   CURLOPT_COOKIE => $USER_COOKIE,  ) ), array(  'url' => 'http://dyactive2.vip.xunlei.com/com_sign/?game=frxz&type=rec_gametime&referfrom=&rt=0.42521539455332336', //凡人修真  'method' => 'POST',  'post_data' => '',  'header' => null,  'options' => array(   CURLOPT_REFERER => "http://niu.xunlei.com/entergame/?gameNo=frxz&fenQuNum=3",   CURLOPT_COOKIE => $USER_COOKIE,  ) ), array(  'url' => 'http://dyactive2.vip.xunlei.com/com_sign/?game=smxj&type=rec_gametime&referfrom=&rt=0.42521539455332336', //神魔仙界  'method' => 'POST',  'post_data' => '',  'header' => null,  'options' => array(   CURLOPT_REFERER => "http://niu.xunlei.com/entergame/?gameNo=smxj&fenQuNum=2",   CURLOPT_COOKIE => $USER_COOKIE,  ) ), array(  'url' => 'http://dyactive2.vip.xunlei.com/com_sign/?game=qsqy&type=rec_gametime&referfrom=&rt=0.42521539455332336', //倾世情缘  'method' => 'POST',  'post_data' => '',  'header' => null,  'options' => array(   CURLOPT_REFERER => "http://niu.xunlei.com/entergame/?gameNo=qsqy&fenQuNum=11",   CURLOPT_COOKIE => $USER_COOKIE,  ) ),);foreach ($data as $val) { $request = new Curl_request ($val ['url'], $val ['method'], $val ['post_data'], $val ['header'], $val ['options']); $curl->add($request);}$curl->execute();echo $curl->display_errors();            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表