Php/docs/function.curl-multi-info-read

提供:Dev Guides
< Php
移動先:案内検索

curl_multi_info_read

(PHP 5, PHP 7)

curl_multi_info_read現在の転送についての情報を表示する


説明

curl_multi_info_read ( CurlMultiHandle $multi_handle [, int &$queued_messages = null ] ) : array|false

マルチハンドルに対して、個別の転送にメッセージ/情報が残っているかどうかを問い合わせます。 メッセージには、転送時のエラーコードや転送が完了したという情報が残っている可能性があります。

この関数を繰り返しコールすると、毎回新しい結果を返します。false が返されると、その時点でもう取得する結果がないことを意味します。 queued_messages がさす値は、 この関数をコールした後に残っているメッセージの数となります。

警告 返されたリソースがさすデータは、 curl_multi_remove_handle() をコールした後には残りません。


パラメータ

multi_handle
curl_multi_init() が返す cURL マルチハンドル。
queued_messages
まだキューの中に残っているメッセージの数。


返り値

成功した場合にメッセージの連想配列、失敗した場合に false を返します。

配列の内容
キー
msg 定数 CURLMSG_DONE。その他の返り値は現在は存在しません。
result 定数 CURLE_* のいずれか。すべて OK なら

CURLE_OK が返ります。

handle curl が扱うハンドルの型を表すリソース。


変更履歴

バージョン 説明
8.0.0 multi_handleCurlMultiHandle クラスのインスタンスを期待するようになりました。

これより前のバージョンでは、resource を期待していました。


例1 curl_multi_info_read() の例

<?php$urls = array(   "http://www.cnn.com/%22,   "http://www.bbc.co.uk/%22,   "http://www.yahoo.com/%22);$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);    if ($active) {        curl_multi_select($mh);    }    while (false !== ($info = curl_multi_info_read($mh))) {        var_dump($info);    }} while ($active && $status == CURLM_OK);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)

参考