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 27 PHP
php 错误处理经验分享
Oct 11 PHP
CURL的学习和应用(附多线程实现)
Jun 03 PHP
对淘宝URL中ID提取的PHP代码
Sep 01 PHP
PHP COOKIE及时生效的方法介绍
Feb 14 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
Apr 10 PHP
php微信开发接入
Aug 27 PHP
php中static和const关键字用法分析
Dec 07 PHP
在laravel中使用Symfony的Crawler组件分析HTML
Jun 19 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 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新手上路(九)
2006/10/09 PHP
php生成图形验证码几种方法小结
2013/08/15 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
async和DOM Script文件加载比较
2014/07/20 PHP
JavaScript面向对象编程入门教程
2014/04/16 Javascript
Windows 系统下安装和部署Egret的开发环境
2014/07/31 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
详解jQuery Mobile自定义标签
2016/01/06 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
Axios学习笔记之使用方法教程
2017/07/21 Javascript
详解angular2 控制视图的封装模式
2018/12/27 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
python传递参数方式小结
2015/04/17 Python
python实现中文分词FMM算法实例
2015/07/10 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
python 实现敏感词过滤的方法
2019/01/21 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
2019/04/11 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
pandas dataframe的合并实现(append, merge, concat)
2019/06/24 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
处理textarea中的换行和空格
2019/12/12 HTML / CSS
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
大整数数相乘的问题
2012/07/22 面试题
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
物流管理毕业生自荐信
2013/10/24 职场文书
卫校护理专业毕业生求职信
2013/11/26 职场文书
护理学专业推荐信
2013/12/03 职场文书
银行实习的自我鉴定
2013/12/10 职场文书
关于抽烟的检讨书
2014/02/25 职场文书
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技
Nginx 常用配置
2022/05/15 Servers