English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP基本教程

PHP上級教程

PHP & MySQL

PHPリファレンスマニュアル

PHP curl_multi_info_read() 関数の使用法と例

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が返されます。

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

キー
msgCURLMSG_DONE定数。他の返値は現在利用不可能です。
resultCURLE_*定数の1つ。全ての操作が問題なく完了した場合、返されます。CURLE_OK定数。
handleCURLリソースタイプは、それに関連するハンドルを示します。

オンラインサンプル

<?php
$urls = array(
   "http://www.baidu.com/",
   "http://www.google.com.hk/",
   "http://ja.oldtoolbag.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.0msgs_in_queue追加されました。

PHP CURLリファレンスマニュアル