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学习之PHP运算符
Oct 09 PHP
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
Mar 29 PHP
PHP has encountered an Access Violation at 7C94BD02解决方法
Aug 24 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
Dec 25 PHP
php将access数据库转换到mysql数据库的方法
Dec 24 PHP
yii用户注册表单验证实例
Dec 26 PHP
CI框架支持$_GET的两种实现方法
May 18 PHP
php将文件夹打包成zip文件的简单实现方法
Oct 04 PHP
2017年最好用的9个php开发工具推荐(超好用)
Oct 23 PHP
php关联数组与索引数组及其显示方法
Mar 12 PHP
PHP基于递归算法解决兔子生兔子问题
May 11 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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下载远程文件类(支持断点续传)
2008/11/14 PHP
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
php修改数组键名的方法示例
2017/04/15 PHP
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
Prototype ObjectRange对象学习
2009/07/19 Javascript
JavaScript Event学习第二章 Event浏览器兼容性
2010/02/07 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
jQuery选择器源码解读(八):addCombinator函数
2015/03/31 Javascript
jQuery实现仿Google首页拖动效果的方法
2015/05/04 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
jquery传参及获取方式(两种方式)
2020/02/13 jQuery
vue+canvas实现拼图小游戏
2020/09/18 Javascript
Python线程的两种编程方式
2015/04/14 Python
Python基于PycURL实现POST的方法
2015/07/25 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
python将控制台输出保存至文件的方法
2019/01/07 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
python实现递归查找某个路径下所有文件中的中文字符
2019/08/31 Python
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
葡萄牙语专业个人求职信
2013/12/10 职场文书
经典洗发水广告词
2014/03/13 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
授权委托书
2014/09/17 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
2015年度物流工作总结
2015/04/30 职场文书
JavaScript实现简单的音乐播放器
2022/08/14 Javascript