curl_multi_remove_handle()

1. 定义

该函数与curl_multi_add_handle()相反,它将curl批处理句柄中某一个资源句柄移除,成功时返回数字0。 失败则返回CURLM_XXX之一的错误码。

2. 语法

curl_multi_remove_handle ( resource $mh , resource $ch ) : int

3. 参数说明

参数 可选性 数据类型 描述
$mh 必需 资源类型 通过函数curl_multi_init()打开的curl资源句柄
$ch 必需 资源类型 通过函数curl_init()打开的curl资源句柄

4. 示例

<?php

// curl_multi_remove_handle()
// 与`curl_multi_add_handle()`相反,它将curl批处理句柄中某一个资源句柄移除,成功时返回数字`0`

$ch1 = curl_init('http://www.baidu.com/');
$search = '极速教程 网尚科技';
$params = curl_escape($ch1, $search);
$url1 = 'http://www.baidu.com/s?wd=' . $params;
curl_setopt($ch1, CURLOPT_URL, $url1);

$ch2 = curl_init();
$url2 = 'loripsum.net/api/3/short/headers';
curl_setopt($ch2, CURLOPT_URL, $url2);

$mh = curl_multi_init();// 初始化一个curl批处理会话资源句柄
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);

$running = null; // 判断操作是否仍在执行的标识
do {
    curl_multi_exec($mh, $running);
} while ($running > 0);

// 关闭批量句柄时,需要先移除、再关闭连接
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

5. 延展阅读

  • curl_init():初始化一个cURL会话,返回一个cURL资源句柄,以供curl_setopt()curl_exec()curl_close()函数使用
  • curl_multi_init():创建一个可添加批量cURL传输会话的资源句柄
  • curl_multi_add_handle():向cURL批处理会话中添加单个的cURL传输句柄