PHP curl_multi_exec函数
2024-09-06 00:43:22
curl_multi_exec — 运行当前 cURL 句柄的子连接
说明
int curl_multi_exec ( resource $mh , int &$still_running )
处理在栈中的每一个句柄。无论该句柄需要读取或写入数据都可调用此方法。
参数
mh
由 curl_multi_init() 返回的 cURL 多个句柄。
still_running
一个用来判断操作是否仍在执行的标识的引用。
返回值
一个定义于 cURL 预定义常量中的 cURL 代码。
注意: 该函数仅返回关于整个批处理栈相关的错误。即使返回 CURLM_OK 时单个传输仍可能有问题。
实例
这个范例将会创建 2 个 cURL 句柄,把它们加到批处理句柄,然后并行地运行它们。
<?php
// 创建一对cURL资源
$ch1 = curl_init();
$ch2 = curl_init(); // 设置URL和相应的选项
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0); // 创建批处理cURL句柄
$mh = curl_multi_init(); // 增加2个句柄
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2); $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);
}
} // 关闭全部句柄
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh); ?>
最新文章
- Android Activity的加载的模式
- yield
- Django中Form的Textarea字段
- vim配色方案设置(更换vim配色方案)
- 【GoLang】GoLang 中 make 与 new的区别
- 三部曲一(数据结构)-1011-Sorting It All Out
- OC数组常见操作
- idl 批量裁剪代码
- Jquery 全选、反选问题解析
- Tomcat详解
- IOS编程教程(八):在你的应用程序添加启动画面
- Leetcode 线性表 Swap Nodes in Pairs
- Delphi 模拟网站验证码(酷,把随机文字写道图片上)
- (简单) FZU 1686 神龙的难题 , DLX+可重复覆盖。
- SoapUI实践:自动化测试、压力测试、持续集成
- [android] 请求码和结果码的作用
- 钉钉扫码登录web网站
- http请求参数中文乱码的问题
- CentOS_mini下make安装
- SqlDataSource.FilterExpression Property
热门文章
- Bootstrap 学习笔记10 弹出框和警告框插件
- Hadoop(2): Blocks存储管理及读写
- Arrays -数组工具类,数组转化字符串,数组排序等
- MySQL-第五篇视图
- css中word-break、word-wrap和white-space的区别
- Webpack的使用指南-Webpack的常用解决方案
- P3773 [CTSC2017]吉夫特
- SpringCloud Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded
- OC学习--类和对象的关系
- OutOfMemoryError系列(2): GC overhead limit exceeded