cURL curl_multi_info_read

(PHP 5, PHP 7, PHP 8)

curl_multi_info_read — 현재 전송에 대한 정보 얻기


설명

curl_multi_info_read(CurlMultiHandle $multi_handle, int &$queued_messages = null): array|false

개별 이체로부터 메시지나 정보가 있으면 멀티핸들에게 문의하십시오. 메시지에는 전송의 오류 코드 또는 전송이 완료되었다는 사실과 같은 정보가 포함될 수 있습니다.

이 함수에 대한 반복적인 호출은 이 시점에서 더 이상 얻을 것이 없다는 신호로 false가 반환될 때까지 매번 새로운 결과를 반환합니다. queued_messages로 가리키는 정수에는 이 함수가 호출된 후 남은 메시지 수가 포함됩니다.

경고 반환된 리소스가 가리키는 데이터는 curl_multi_remove_handle() 호출에서 살아남을 수 없습니다.


매개변수

multi_handle
curl_multi_init()에서 반환된 cURL 다중 핸들입니다.
queued_messages
아직 대기열에 있는 메시지 수

반환 값

성공하면 메시지에 대한 연관 배열을 반환하고 실패하면 false를 반환합니다.

반환된 배열의 내용

Key: Value:
msg CURLMSG_DONE 상수입니다. 다른 반환 값은 현재 사용할 수 없습니다.
result CURLE_* 상수 중 하나입니다. 모든 것이 정상이면 CURLE_OK가 결과가 됩니다.
handle curl 유형의 리소스는 관련된 핸들을 나타냅니다.

변경 로그

버전 설명
8.0.0 multi_handle은 이제 CurlMultiHandle 인스턴스를 예상합니다. 이전에는 리소스가 필요했습니다.

Examples

예제 #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);
    if ($active) {
        curl_multi_select($mh);
    }
    while (false !== ($info = curl_multi_info_read($mh))) {
        var_dump($info);
    }
} while ($active && $status == CURLM_OK);

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)
                

기타