curl_multi_init()

1. 定义

该函数将创建一个可添加批量curl传输会话的资源句柄。 该句柄可并行处理批量curl句柄。失败时返回FALSE。

2. 语法

curl_multi_init ( void ) : resource

3. 参数说明

该函数不传入任何参数。

4. 示例

<?php

// curl_multi_init()
// 创建一个可添加批量curl传输会话的资源句柄

$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 = 'http://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_close():关闭一组cURL句柄,释放这些句柄所占用的所有资源