(PHP 5)
curl_multi_info_read — 現在の転送についての情報を表示する
マルチハンドルに対して、個別の転送にメッセージ/情報が残っているかどうかを問い合わせます。 メッセージには、転送時のエラーコードや転送が完了したという情報が残っている可能性があります。
この関数を繰り返しコールすると、毎回新しい結果を返します。FALSE が返されると、その時点でもう取得する結果がないことを意味します。 msgs_in_queue がさす値は、 この関数をコールした後に残っているメッセージの数となります。
返されたリソースがさすデータは、 curl_multi_remove_handle() をコールした後には残りません。
成功した場合にメッセージの連想配列、失敗した場合に FALSE を返します。
| キー | 値 | 
|---|---|
| msg | 定数 CURLMSG_DONE。その他の返り値は現在は存在しません。 | 
| result | 定数 CURLE_* のいずれか。すべて OK なら CURLE_OK が返ります。 | 
| handle | curl が扱うハンドルの型を表すリソース。 | 
例1 curl_multi_info_read() の例
<?php
$urls = array(
   "http://www.cnn.com/",
   "http://www.bbc.co.uk/",
   "http://www.yahoo.com/"
);
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
    $conn[$i] = curl_init($url);
    curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);
    curl_multi_add_handle($mh, $conn[$i]);
}
do {
    $status = curl_multi_exec($mh, $active);
    $info = curl_multi_info_read($mh);
    if (false !== $info) {
        var_dump($info);
    }
} while ($status === CURLM_CALL_MULTI_PERFORM || $active);
foreach ($urls as $i => $url) {
    $res[$i] = curl_multi_getcontent($conn[$i]);
    curl_close($conn[$i]);
}
var_dump(curl_multi_info_read($mh));
?>
上の例の出力は、 たとえば以下のようになります。
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(5) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(7) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(6) of type (curl)
}
bool(false)
| バージョン | 説明 | 
|---|---|
| 5.2.0 | msgs_in_queue が追加されました。 |