PHP curl_multi_info_read関数

PHP Calendar 参考手册PHP cURLリファレンスマニュアル

(PHP 5)

curl_multi_info_read — 現在解析中のcURLの関連転送情報を取得する


説明

array curl_multi_info_read ( resource $mh [, int &$msgs_in_queue = NULL ] )

マルチハンドルに、個々の転送からのメッセージや情報があるかどうかを問い合わせます。メッセージには、個々の転送から返されたエラーコードや、単に転送が完了したかどうかなどのレポートが含まれる場合があります。

この関数を呼び出すたびに新しい結果が返されますが、利用可能な情報がなくなると FALSE が返されます。引数 msgs_in_queue が指す整数には、この関数の呼び出し後に残っているメッセージの数が格納されます。

注意:返されたリソースが指すデータは、curl_multi_remove_handle()を呼び出した後には存在しなくなります。


パラメータ

mh

curl_multi_init() が返す cURL マルチハンドル。

msgs_in_queue

キューに残っているメッセージの数。


戻り値

成功した場合は関連情報の配列を返し、失敗した場合は FALSE を返します。

戻り値の内容(返される配列の内容):

键 值
msg CURLMSG_DONE定数。その他の戻り値は現在利用できません。
result CURLE_*定数のひとつです。すべての操作に問題がなければ、返されます。CURLE_OK定数。
handle cURLリソース型は、それに関連するハンドルを示します。

例

<?php

$urls = array(
   "http://www.baidu.com/",
   "http://www.google.com.hk/",
   "http://www.w3cschool.cc/"
);

$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追加されました。

PHP Calendar 参考手册PHP cURLリファレンスマニュアル

その他の拡張モジュール