cURL批处理(multi cURL)
来源:互联网 发布:安史之乱 知乎 编辑:程序博客网 时间:2024/06/06 13:33
cURL还有一个高级特性——批处理句柄(handle)。这一特性允许你同时或异步地打开多个URL连接。
<?php
$urls = array (
'www.baidu.com',
'www.hao123.com',
'www.baidu.com'
);
// 创建cURL批处理句柄
$mch = curl_multi_init ();
if (!empty($urls)) {
foreach($urls as $k => $url){
// 创建cURL资源
$ch = curl_init();
//指定URL和适当的参数
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_multi_add_handle($mch, $ch );
// 数组存储url_init
$chs[$k] = $ch;
}
}
// 预定义一个状态变量
$active = null;
// 执行批处理句柄
do {
$mrc = curl_multi_exec($mch, $active );
} while($mrc == CURLM_CALL_MULTI_PERFORM );
while($active && $mrc == CURLM_OK ) {
if(curl_multi_select($mch ) != - 1) {
do{
$mrc = curl_multi_exec($mch, $active );
}while($mrc == CURLM_CALL_MULTI_PERFORM );
}
}
foreach($chs as $k => $c ){
if(curl_error ( $c ) == ''){
$temp = curl_multi_getcontent($c );
$arr[$k] = $temp;
// 关闭各个句柄
curl_multi_remove_handle($mch, $c );
curl_close($c);
} else{
echo 'failed!';
}
}
// 关闭各个句柄
curl_multi_close($mch );
print_r($arr);
?>
- cURL批处理(multi cURL)
- cURL multi批处理实现及避免cURL multi造成CPU负载过高问题
- curl multi接口示例
- cURL特性之批处理
- 批处理--循环调用curl
- curl
- curl
- CURL
- curl
- curl
- Curl
- cURL
- CURL
- curl
- curl
- curl
- curl
- curl
- 如何在Win32 Console Application (Win32控制台)程序中使用MFC
- 正则表达式-语法
- JSP中的response对象
- Windows服务之Service Program
- PHP 数据类型
- cURL批处理(multi cURL)
- [QT]QMessageBox 的四种用法
- 关于android 如何安装 assets文件下的apk .
- vs C# 继承窗体类出现“文件中的类都不能进行设计,因此未能为该文件显示设计器。设计器检查出文件中有以下类”无法打开设计器的错误
- 变量的存储分配与作用域
- 操作系统学习笔记_AT&T
- Slash Maze UVA705
- flash bug 点击链接无效
- VC6.0中如何彻底删除一个已经添加的类