这篇文章主要介绍了PHP实现的curl批量请求操作,结合实例形式分析了php使用curl进行批量请求处理的具体批量创建curl句柄、批量执行句柄、防卡死等相关操作技巧,需要的朋友可以参考下

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

$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 curl 批量,PHP实现的curl批量请求操作相关推荐

  1. php 循环curl,PHP实现的curl批量请求操作示例

    本文实例讲述了PHP实现的curl批量请求操作.分享给大家供大家参考,具体如下: $ch = array(); $res = array(); $conn = array(); $urls = arr ...

  2. PHP 利用 curl 发送 post get del put patch 请求

    PHP 利用 curl 发送 post get del put patch 请求              参考地址    PHP cURL 函数 概述 PHP支持的由Daniel Stenberg创 ...

  3. MATLAB【四】 ————批量适配图片信息与excel/txt等文档信息,批量移动拷贝图片,批量存图片中点和方框

    1.批量读取图片,批量读取文件 2.适配文件与excel.txt等文档信息 3.获取显示图片ROI.Point.rect.更改像素值 4.批量移动拷贝图片,批量显示 5.保存显示图片或者图片中的点和方 ...

  4. 随机梯度下降、批量梯度下降、小批量梯度下降分类是什么?有什么区别?batch_size的选择如何实施、有什么影响?

    随机梯度下降.批量梯度下降.小批量梯度下降分类是什么?有什么区别?batch_size的选择如何实施.有什么影响? 目录

  5. mysql有没有批量游标_MySQL使用游标批量处理进行表操作_MySQL

    一.概述 本章节介绍使用游标来批量进行表操作,包括批量添加索引.批量添加字段等.如果对存储过程.变量定义.预处理还不是很熟悉先阅读我前面写过的关于这三个概念的文章,只有先了解了这三个概念才能更好的理解 ...

  6. curl代理ippost php_php使用curl通过代理获取数据的实现方法

    本文实例讲述了php使用curl通过代理获取数据的实现方法.分享给大家供大家参考,具体如下: $curl=curl_init(); curl_setopt($curl, CURLOPT_URL, &q ...

  7. c++批量重命名_文件批量重命名?这个方法百试百灵

    本文由两部分构成,[批量提取指定文件夹下文件名]以及[批量文件重命名].嗯~简易操作~不涉及VBA编程~ 批量提取指定文件夹下文件名 操作动画如下: 如动画所示,先定义一个名称. 名称为文件夹,引用位 ...

  8. mysql构建器 批量插入_mysqlbatch: mysql的批量执行工具,可以在多台mysql服务器上执行指定的SQL语句,支持sharding,比如在sharding之后的表上批量创建索引...

    MySQL Sharding 批量执行工具 主要功能 批量建库.批量建表.批量执行SQL脚本(创建索引.修改表结构).Sharding使用情况分析 使用方法 python ./mysqlbatch.p ...

  9. php批量打印快递单,excel怎么利用vba实现批量套打快递单批量打印单据?

    excel vba 批量套打快递单,批量打印单据,可以自定义修改设置新的格式. 快递套打模板2015:点击下载 1.设置快递单的自定义纸张.选择对应打印机-点击打印服务器属性-勾选创建新表单-输入表单 ...

最新文章

  1. ## Spark学习之路(一)
  2. 《Java程序员,上班那点事儿》序——刘博
  3. java自定义键值对_KV键值对数据类型
  4. ajax 12301 原因小结
  5. python 新建html_Python学习第226课——html中创建按钮
  6. C#中使用多线程访问Winform问题解决方案
  7. python-自定义模块-文件的操作
  8. 8051单片机的中断发送
  9. 使用Python将Excel文件中的数据插入MySQL数据库,你学会了吗?
  10. python贴吧-python爬取贴吧帖子
  11. 利用python脚本根据DOI号自动查询参考文献信息
  12. pcm转mp3保姆级教程附源码
  13. 游戏服务器redis mysql_redis服务器环境下mysql实现lnmp架构缓存
  14. Java 基础知识总结—ArrayList
  15. linu安装JDK1.8
  16. ASA Failover
  17. 生物群落数据分析最常用的统计方法:回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法
  18. 雲禾遗密:Web3js调用智能合约查看某账户ERC20代币数量
  19. BootLoader是什么 转载至百度百科
  20. c++map自动排序特性

热门文章

  1. Java学习小代码(1)编写三个数的排序程序
  2. Java多线程之优先级setPriority
  3. 数据湖之iceberg系列(五)-Spark实时处理数据
  4. 数据湖技术 Iceberg 的探索与实践
  5. MySQL查询语句中的IN 和Exists 对比分析
  6. Feature Tools:可自动构造机器学习特征的Python库
  7. java 四则运算 栈的实现
  8. SQL表之间复制数据、选出随机几条数据、删除重复数据、取得自增长列等操作...
  9. Hadoop中RPC机制详解之Server端
  10. PHP zendframework phpunit 深入