• 三狮军团首秀 只有两千多球迷观战 2019-05-19
  • 人民网2017呼和浩特徒步迎新活动--内蒙古频道--人民网 2019-05-19
  • 【品牌资讯】环球网斩获“全国行业新闻网站传播力2017年6月榜”多项冠军 2019-05-15
  • 深化对经济工作主线的认识 从供需关系看供给侧结构性改革 2019-05-15
  • 格拉斯哥艺术学院起火 4年前曾遭火灾仍在整修 2019-05-14
  • 回复@地瓜干17世:猪临死才会嚎叫呢~ 2019-05-14
  • 婺源古村溪中发现鹰嘴龟 2019-05-08
  • 编辑评测:高夫净源控油平衡露 极速补水长效控油 2019-05-08
  • 四部门发文规范特色小镇建设防止“新瓶装旧酒” 2019-05-02
  • 【地球的盛会文明的聚会艺术的盛宴四海一家足球为人类和平幸福而荣耀!!!普京是当今人类世界最优秀的一代伟人俄罗斯赢啦!!!】 2019-04-29
  • 学习新思想,千万师生同上一堂课 2019-04-28
  • 你这种个体户都干不了的老蚕也配谈计划?真是笑死人不偿命哦? 2019-04-23
  • 感人!的哥带着患病父亲出车 孝心感动乘客 2019-04-23
  • 图解:习近平在纪念马克思诞辰200周年大会上讲话的16个金句 2019-04-16
  • 感触名家笔下的端午文化 吃香粽原来可以这样"文艺" 2019-04-16
  • 湖北福彩快三查询:浅谈php使用curl模拟多线程发送请求

    山西体彩11选5直选遗漏 www.caxru.com  更新时间:2019年03月08日 16:11:54   作者:洛卡卡了   我要评论

    这篇文章主要介绍了php使用curl模拟多线程发送请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    每个PHP文件的执行是单线程的,但是php本身也可以用一些别的技术实现多线程并发比如用php-fpm进程,这里用curl模拟多线程发送请求。php的curl多线程是通过不断调用curl_multi_exec来获取内容,这里举一个demo来模拟一次curl多线程并发操作。

    //设置缓冲为0(也可以去php.ini设置)
    ini_set('output_buffering', 0);
    //打开输出缓冲区
    ob_start();
    //设置一个空数组
    $curl_Arr=[];
    //这里模拟20次请求
    for($i=0;$i<20;$i++){
     //开启curl连接
     $curl_Arr[$i]=curl_init("//XXXX/test.php");
     //CURLOPT_RETURNTRANSFER 设置为1表示稍后执行的curl_exec函数的返回是URL的返回字符串,而不是把返回字符串定向到标准输出并返回TRUE;
     curl_setopt($curl_Arr[$i],CURLOPT_RETURNTRANSFER,1);
    }
    
    //创建批处理cURL句柄
    $mh = curl_multi_init();
    
    foreach($curl_Arr as $k => $ch){
     //curl句柄入栈增加
     curl_multi_add_handle($mh,$ch);
    }
    $active = null;
    while(count($curl_Arr)>0){
     //发起curl_multi请求
     @curl_multi_exec($mh,$active);
     foreach($curl_Arr as $k => $ch){
      //获取句柄的返回值
      if($result[$k]= curl_multi_getcontent($ch)){
       //输出结果
       echo "$result[$k]\n";
       ob_flush();
       //把被释放的数据发送到浏览器
       flush();
       //关闭该句柄
       curl_multi_remove_handle($mh,$ch);
       unset($curl_Arr[$k]);
      }
     }
    }
    //关闭ouput_buffering机制
    ob_end_flush();
    //关闭"curl_mulit"句柄
    curl_multi_close($mh);

    我再服务器上建立一起请求的php页面命名为test.php,内容如下

    1 sleep(10);
    2 echo 'seccess';exit;

    表示等待十秒后数据下面语句。
    然后我在命令行执行该程序结果如下:

    上面代码中通过循环$curl_Arr数组来调用curl_multi_getcontent来查询是否有数据。有数据就输出并删除元素,直到$curl_Arr数组元素个数为0。
    该模拟多线程实现是通过使用curl的curl_multi系列函数能实现此功能的。至于该系列函数使用介绍,百度一搜一大把。这里就不做说明了。

    以上所述是小编给大家介绍的php使用curl模拟多线程发送请求详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    相关文章

    • PHP中数组的分组排序实例

      PHP中数组的分组排序实例

      这篇文章主要介绍了PHP中数组的分组排序实例,对PHP数组分组排序的方法,需要的朋友可以参考下
      2014-06-06
    • ThinkPHP查询语句与关联查询用法实例

      ThinkPHP查询语句与关联查询用法实例

      这篇文章主要介绍了ThinkPHP查询语句与关联查询用法,以实例的形式常见的查询方法,包括数组作为查询条件及对象方式来查询等技巧,需要的朋友可以参考下
      2014-11-11
    • 使用php+swoole对client数据实时更新(一)

      使用php+swoole对client数据实时更新(一)

      这篇文章主要介绍了使用php+swoole对client数据实时更新(一) 的相关资料,需要的朋友可以参考下
      2016-01-01
    • PHP实现验证码校验功能

      PHP实现验证码校验功能

      这篇文章主要为大家详细介绍了PHP实现验证码校验功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
      2017-11-11
    • 谈谈 PHP7新增功能

      谈谈 PHP7新增功能

      php7发布已有半月,最近有时间了解一下php7的新特性,当然,这个版本最大的特点是性能的提升,对php7 新增功能的相关知识感兴趣的朋友一起学习吧
      2015-12-12
    • Laravel模型事件的实现原理详解

      Laravel模型事件的实现原理详解

      模型事件在 Laravel 的世界中,你对 Eloquent 大多数操作都会或多或少的触发一些模型事件,下面这篇文章主要给大家介绍了关于Laravel模型事件的实现原理,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴。
      2018-03-03
    • php使HTML标签自动补全闭合函数代码

      php使HTML标签自动补全闭合函数代码

      这个网上找到的自动补全闭合函数还挺不错的,它可以根据你的html内容自己补全闭合,确保HTMl代码正确
      2012-10-10
    • php+jquery+html实现点击不刷新加载更多的实例代码

      php+jquery+html实现点击不刷新加载更多的实例代码

      下面小编就为大家带来一篇php+jquery+html实现点击不刷新加载更多的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
      2016-08-08
    • ThinkPHP5查询数据及处理结果的方法小结

      ThinkPHP5查询数据及处理结果的方法小结

      这篇文章主要介绍了ThinkPHP5查询数据及处理结果的方法,结合实例总结分析了thinkPHP5常见查询语句及查询数据库的三种方式,需要的朋友可以参考下
      2017-11-11
    • ThinkPHP和UCenter接口冲突的解决方法

      ThinkPHP和UCenter接口冲突的解决方法

      这篇文章主要介绍了ThinkPHP和UCenter接口冲突的解决方法,分析了thinkPHP与UCenter接口冲突的原因及通过重命名解决冲突的相关操作步骤与实现技巧,需要的朋友可以参考下
      2016-07-07

    最新评论

  • 三狮军团首秀 只有两千多球迷观战 2019-05-19
  • 人民网2017呼和浩特徒步迎新活动--内蒙古频道--人民网 2019-05-19
  • 【品牌资讯】环球网斩获“全国行业新闻网站传播力2017年6月榜”多项冠军 2019-05-15
  • 深化对经济工作主线的认识 从供需关系看供给侧结构性改革 2019-05-15
  • 格拉斯哥艺术学院起火 4年前曾遭火灾仍在整修 2019-05-14
  • 回复@地瓜干17世:猪临死才会嚎叫呢~ 2019-05-14
  • 婺源古村溪中发现鹰嘴龟 2019-05-08
  • 编辑评测:高夫净源控油平衡露 极速补水长效控油 2019-05-08
  • 四部门发文规范特色小镇建设防止“新瓶装旧酒” 2019-05-02
  • 【地球的盛会文明的聚会艺术的盛宴四海一家足球为人类和平幸福而荣耀!!!普京是当今人类世界最优秀的一代伟人俄罗斯赢啦!!!】 2019-04-29
  • 学习新思想,千万师生同上一堂课 2019-04-28
  • 你这种个体户都干不了的老蚕也配谈计划?真是笑死人不偿命哦? 2019-04-23
  • 感人!的哥带着患病父亲出车 孝心感动乘客 2019-04-23
  • 图解:习近平在纪念马克思诞辰200周年大会上讲话的16个金句 2019-04-16
  • 感触名家笔下的端午文化 吃香粽原来可以这样"文艺" 2019-04-16
  • 玩北京赛车pk10总是输 北京赛车官方投注6658 大乐透开奖 北京pk10高手赌法长期 福彩3d图迷总汇 新彊时时彩三星走势图 北京pk赛车精准计划 买篮彩用哪个手机软件 体彩p3预测论坛 北京赛车pk10开奖网 香港生肖时时彩微信 欢乐生肖彩票走势图 北京赛车pk10杀号规律 北京赛车追号计划注册 彩票pk10投注诀窍 华彩网3d开机号