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() をコールした後には残りません。
返り値
成功した場合にメッセージの連想配列、失敗した場合に false
を返します。
キー | 値 |
---|---|
msg
|
定数 CURLMSG_DONE 。その他の返り値は現在は存在しません。
|
result
|
定数 CURLE_* のいずれか。すべて OK なら
|
handle
|
curl が扱うハンドルの型を表すリソース。 |
変更履歴
バージョン | 説明 |
---|---|
8.0.0 | multi_handle は CurlMultiHandle クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、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)