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

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 ] )

batch 처리 핸들이 별도의 전송 스레드에서 메시지나 정보가 반환되지 않는지 확인합니다. 메시지는 별도의 전송 스레드에서 반환된 오류 코드나 전송 스레드가 완료되었는지 여부와 같은 보고서를 포함할 수 있습니다.

이 함수를 반복 호출하면, 매번 새로운 결과를 반환하며, 더 이상 정보가 반환되지 않을 때까지 FALSE가 신호로 반환됩니다.msgs_in_queue를 통해 반환된 정수는 이 함수 호출 후에도 남아 있는 메시지 수를 나타냅니다.

주의:curl_multi_remove_handle()를 호출한 후에는 존재하지 않을 데이터를 가리키는 리소스가 반환됩니다.

파라미터

mh

curl_multi_init()로 반환된 CURL 다중 핸들

msgs_in_queue

큐에 남아 있는 메시지 수

반환 값

성공 시 관련 정보 배열을 반환합니다. 실패 시 FALSE를 반환합니다.

반환 값 내용(반환 배열의 내용) :

msgCURLMSG_DONE고정된 값. 다른 반환 값은 현재 사용할 수 없습니다.
resultCURLE_*고정된 값 중 하나입니다. 모든 작업이 문제 없이 완료되면 반환됩니다.CURLE_OK고정된 값.
handleCURL 자원 타입은 관련 핸들과 관련 있습니다.

온라인 예제

<?php
$urls = array(
   "http://www.baidu.com/",
   "http://www.google.com.hk/",
   "http://ko.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 참조 매뉴얼