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中常用编辑器推荐
Jan 02 PHP
php中根据某年第几天计算出日期年月日的代码
Feb 24 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
Aug 18 PHP
PHP stripos()函数及注意事项的分析
Jun 08 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
Jun 24 PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
详解PHP版本兼容之openssl调用参数
Jul 25 PHP
解决laravel id非自增 模型取回为0 的问题
Oct 11 PHP
浅谈Laravel模板实体转义带来的坑
Oct 22 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 PHP
PHP dirname功能及原理实例解析
Oct 28 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使用SOAP调用.net的WebService数据
2013/11/12 PHP
destoon实现底部添加你是第几位访问者的方法
2014/07/15 PHP
php的XML文件解释类应用实例
2014/09/22 PHP
推荐几个开源的微信开发项目
2014/12/28 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
jQuery实现多按钮单击变色
2014/11/27 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
react 创建单例组件的方法
2018/04/26 Javascript
JavaScript引用类型RegExp基本用法详解
2018/08/09 Javascript
微信小程序swiper实现滑动放大缩小效果
2018/11/15 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
javascript实现弹幕墙效果
2019/11/28 Javascript
node爬取新型冠状病毒的疫情实时动态
2020/02/06 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
Python计算回文数的方法
2015/03/11 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
python实现简易版计算器
2020/06/22 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
Python socket处理client连接过程解析
2020/03/18 Python
PyQt5实现画布小程序
2020/05/30 Python
CSS3实现渐变背景兼容问题
2020/05/06 HTML / CSS
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
HTML5新增form控件和表单属性实例代码详解
2019/05/15 HTML / CSS
美国杂志订阅折扣与优惠网站:Magazines.com
2016/08/31 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
护理自我鉴定范文
2013/10/06 职场文书
中学自我评价
2014/01/31 职场文书
红旗方阵解说词
2014/02/12 职场文书
小学生评语集锦
2014/04/18 职场文书
党校党性分析材料
2014/12/19 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书