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 相关文章推荐
用文本作数据处理
Oct 09 PHP
用Zend Encode编写开发PHP程序
Feb 21 PHP
php如何解决无法上传大于8M的文件问题
Mar 10 PHP
PHP的switch判断语句的“高级”用法详解
Oct 01 PHP
php+mysql数据库查询实例
Jan 21 PHP
深入浅析用PHP实现MVC
Mar 02 PHP
php实现图片上传时添加文字和图片水印技巧
Apr 18 PHP
JavaScript实现删除电脑的关机键
Jul 26 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Dec 14 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
PHP实现函数内修改外部变量值的方法示例
Dec 28 PHP
phpQuery采集网页实现代码实例
Apr 02 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配置参数总结
2013/06/14 PHP
PHP 中常量的知识整理
2017/04/14 PHP
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
JS编程小常识很有用
2012/11/26 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
JS获取随机数和时间转换的简单实例
2016/07/10 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
angular中不同的组件间传值与通信的方法
2017/11/04 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
vue后台管理之动态加载路由的方法
2018/08/13 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
python如何构建mock接口服务
2021/01/28 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
杭州-DOTNET笔试题集
2013/09/25 面试题
硕士研究生个人求职信
2013/12/04 职场文书
幼儿园教师的自我评价范文
2014/09/17 职场文书
2014年大学生工作总结
2014/11/20 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
HTML+CSS+JS实现图片的瀑布流布局的示例代码
2021/04/22 HTML / CSS
python和anaconda的区别
2022/05/06 Python