curl_multi_getcontent()

1. 定义

当curl连接指定了CURLOPT_RETURNTRANSFERTRUE时(将返回结果保存在资源流中而不立即输出),该函数可获得该连接的输出文本流。

注:该项设置必须明确指定绑定在哪个句柄上,而不能通过批设置curl_multi_setopt()函数来指定。

2. 语法

curl_multi_getcontent ( resource $ch ) : string

3. 参数说明

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

4. 示例

<?php

// curl_multi_getcontent()
// 当curl连接指定了`CURLOPT_RETURNTRANSFER`为`TRUE`时(将返回结果保存在资源流中而不立即输出),该函数可获得该连接的输出文本流

$urls = [
    'http://www.jisuapi.com',
    'http://www.jisudev.com'
];
$count = count($urls);
$mh = curl_multi_init();
foreach ($urls as $key => $value) {
    $ch[$key] = curl_init();
    curl_setopt($ch[$key], CURLOPT_URL, $value);
    curl_setopt($ch[$key], CURLOPT_RETURNTRANSFER, true);// 该项配置不允许在函数`curl_multi_setopt`中使用
    curl_multi_add_handle($mh, $ch[$key]);
}

// 批处理
$running = null;
do {
    curl_multi_exec($mh, $running);
}while($running > 0);

// 移除句柄
foreach ($ch as $key => $value) {
    $res[$key] = curl_multi_getcontent($value);// 获取响应结果
    curl_multi_remove_handle($mh, $value);
}

// 关闭所有句柄
curl_multi_close($mh);
var_dump($res);// 输出两个 URL 的响应页面的源代码

5. 延展阅读