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 相关文章推荐
ftp类(example.php)
Oct 09 PHP
PHP mcrypt可逆加密算法分析
Jul 19 PHP
PHP投票系统防刷票判断流程分析
Feb 04 PHP
修改ThinkPHP缓存为Memcache的方法
Jun 25 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
PHP处理大量表单字段的便捷方法
Feb 07 PHP
支付宝接口开发集成支付环境小结
Mar 17 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
Apr 15 PHP
为百度UE编辑器上传图片添加水印功能
Apr 16 PHP
Yii框架核心组件类实例详解
Aug 06 PHP
php服务器的系统详解
Oct 12 PHP
laravel 实现用户登录注销并限制功能
Oct 24 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
239军机修复记
2021/03/02 无线电
php date与gmdate的获取日期的区别
2010/02/08 PHP
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
在网页里看flash的trace数据的js类
2009/01/10 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
2013/11/22 Javascript
Chrome扩展页面动态绑定JS事件提示错误
2014/02/11 Javascript
javascript中的throttle和debounce浅析
2014/06/06 Javascript
js的回调函数详解
2015/01/05 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
2016/04/01 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
微信小程序完美解决scroll-view高度自适应问题的方法
2020/08/08 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
[01:13:51]TNC vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
全面分析Python的优点和缺点
2018/02/07 Python
python调用百度REST API实现语音识别
2018/08/30 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
Python之字典添加元素的几种方法
2020/09/30 Python
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
体育老师的教学自我评价分享
2013/11/19 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
高中美术教学反思
2016/02/17 职场文书
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫
css3手动实现pc端横向滚动
2022/06/21 HTML / CSS