PHP实现的curl批量请求操作示例


Posted in PHP onJune 06, 2018

本文实例讲述了PHP实现的curl批量请求操作。分享给大家供大家参考,具体如下:

<?php
$ch = array();
$res = array();
$conn = array();
$urls = array(
  'baidu' => "http://www.baidu.com/",
  'cheyun' => "http://auto.jrj.com.cn/",
  'w3c' => "http://www.w3cschool.cc/",
);
// 创建批处理cURL句柄
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
  // 创建一对cURL资源
  $conn[$i] = curl_init();
  // 设置URL和相应的选项
  curl_setopt($conn[$i], CURLOPT_URL, $url);
  curl_setopt($conn[$i], CURLOPT_HEADER, 0);
  curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($conn[$i], CURLOPT_TIMEOUT, 10);
  //302跳转
  curl_setopt($conn[$i], CURLOPT_FOLLOWLOCATION, 1);
  // 增加句柄
  curl_multi_add_handle($mh, $conn[$i]);
}
$active = null;
//防卡死写法:执行批处理句柄
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);
  }
}
foreach ($urls as $i => $url) {
  //获取当前解析的cURL的相关传输信息
  $info = curl_multi_info_read($mh);
  //获取请求头信息
  $heards = curl_getinfo($conn[$i]);
  var_dump($heards);
  //获取输出的文本流
  $res[$i] = curl_multi_getcontent($conn[$i]);
  // 移除curl批处理句柄资源中的某个句柄资源
  curl_multi_remove_handle($mh, $conn[$i]);
  //关闭cURL会话
  curl_close($conn[$i]);
}
//关闭全部句柄
curl_multi_close($mh);
//var_dump($res);

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP 快速生成 Flash 动画的方法
Mar 06 PHP
一个自定义位数的php多用户计数器代码
Mar 11 PHP
jquery获取多个checkbox的值异步提交给php的方法
Jun 24 PHP
php开发微信支付获取用户地址
Oct 04 PHP
PHP保存session到memcache服务器的方法
Jan 19 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
mysql desc(DESCRIBE)命令实例讲解
Sep 24 PHP
php封装一个异常的处理类
Jun 08 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
PHP 应用容器化以及部署方法
Feb 12 PHP
PHP给源代码加密的几种方法汇总(推荐)
Feb 06 PHP
YII2框架中日志的配置与使用方法实例分析
Mar 18 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
Jun 06 #PHP
Yii 访问 Gii(脚手架)时出现 403 错误
Jun 06 #PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
Jun 05 #PHP
thinkPHP5框架设置404、403等http状态页面的方法
Jun 05 #PHP
PHP函数按引用传递参数及函数可选参数用法示例
Jun 04 #PHP
PHP实现的超长文本分页显示功能示例
Jun 04 #PHP
PHP使用正则表达式实现过滤非法字符串功能示例
Jun 04 #PHP
You might like
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
php配合jquery实现增删操作具体实例
2013/12/12 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
2014/09/29 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
javascript读写XML实现广告轮换(兼容IE、FF)
2013/08/09 Javascript
javascript简单事件处理和with用法介绍
2013/09/16 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
jQuery中$.each使用详解
2015/01/29 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
详解JavaScript UTC时间转换方法
2016/01/07 Javascript
JavaScript 字符串常用操作小结(非常实用)
2016/11/30 Javascript
原生js简单实现放大镜特效
2017/05/16 Javascript
浅析Angular19 自定义表单控件
2018/01/31 Javascript
vue的diff算法知识点总结
2018/03/29 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
python制作小说爬虫实录
2017/08/14 Python
基于python中的TCP及UDP(详解)
2017/11/06 Python
Python分析学校四六级过关情况
2017/11/22 Python
python距离测量的方法
2018/03/06 Python
python 输出上个月的月末日期实例
2018/04/11 Python
python队列queue模块详解
2018/04/27 Python
Python队列RabbitMQ 使用方法实例记录
2019/08/05 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
公司部门司机岗位职责
2014/01/03 职场文书
英语教育专业自荐信
2014/05/29 职场文书
节能标语大全
2014/06/21 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
审计班子对照检查材料
2014/08/27 职场文书
医生辞职信范文
2015/03/02 职场文书
2016年“七一建党节”广播稿
2015/12/18 职场文书
公司与个人合作协议书
2016/03/19 职场文书
浅谈MySQL中的六种日志
2022/03/23 MySQL