curl_multi_info_read
(PHP 5, PHP 7, PHP 8)
curl_multi_info_read — 獲取目前解析的cURL的相關傳輸資訊
說明
   curl_multi_info_read(resource 
  $mh, int &$msgs_in_queue = null): array查詢批處理控制代碼是否單獨的傳輸執行緒中有訊息或資訊返回。訊息可能包含諸如從單獨的傳輸執行緒返回的錯誤碼或者只是傳輸執行緒有沒有完成之類的報告。
   
   重複呼叫這個函式,它每次都會返回一個新的結果,直到這時沒有更多資訊返回時,false 被當作一個訊號返回。通過msgs_in_queue返回的整數指出將會包含當這次函式被呼叫后,還剩餘的訊息數。
  
警告
   
 返回的資源指向的數據呼叫curl_multi_remove_handle()后將不會存在。
返回值
   成功時返回相關資訊的陣列,失敗時返回false。
  
| Key: | Value: | 
|---|---|
| msg | CURLMSG_DONE常量。其他返回值目前不可用。 | 
| result | CURLE_*常量之一。如果一切操作沒有問題,將會返回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被加入。 |