(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, $info) $info}do { $status = curl_multi_exec($mh, $info); $info = curl_mtiactive_info); ; 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 被加入。 |