개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.10 05:59

curl_multi_getcontent 함수 이해를 부탁드립니다.

목록
  • DNS마스터 8일 전 2025.06.10 05:59
  • 13
    1
저는 현재 curl_multi 함수를 사용하여 여러 요청을 병렬로 처리하고 있습니다.
하지만, curl_multi_getcontent 함수를 사용하여 결과를 받을 때 발생하는 에러에 대한 이해가 부족합니다.
curl_multi_getcontent 함수는 여러 요청의 결과를 한번에 받을 수 있는 함수 인가요?
만약에 여러 요청 중 하나가 실패할 경우 어떻게 처리해야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  8일 전



    curl_multi_getcontent 함수는 여러 요청의 결과를 한번에 받을 수 있는 함수입니다. 하지만, 이 함수는 모든 요청이 완료된 후에만 결과를 반환합니다. 만약에 여러 요청 중 하나가 실패할 경우, 해당 요청의 결과는 NULL이 반환됩니다.

    따라서, curl_multi_getcontent 함수를 사용할 때는 모든 요청이 완료된 후에 결과를 확인하고, 실패한 요청의 결과를 NULL인 경우를 처리해야 합니다.

    예를 들어, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    $multi = curl_multi_init();
    
    $ch1 = curl_init('http://example.com/1');
    
    $ch2 = curl_init('http://example.com/2');
    
    curl_multi_add_handle($multi, $ch1);
    
    curl_multi_add_handle($multi, $ch2);
    
    
    
    do {
    
        $mrc = curl_multi_exec($multi, $active);
    
    } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    
    
    
    while ($active && $mrc == CURLM_OK) {
    
        if (curl_multi_select($multi) != -1) {
    
            do {
    
                $mrc = curl_multi_exec($multi, $active);
    
            } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    
        }
    
    }
    
    
    
    $result1 = curl_multi_getcontent($ch1);
    
    $result2 = curl_multi_getcontent($ch2);
    
    
    
    if ($result1 === FALSE) {
    
        echo "Request 1 failedn";
    
    } else {
    
        echo "Request 1 result: $result1n";
    
    }
    
    
    
    if ($result2 === FALSE) {
    
        echo "Request 2 failedn";
    
    } else {
    
        echo "Request 2 result: $result2n";
    
    }
    
    
    
    curl_multi_remove_handle($multi, $ch1);
    
    curl_multi_remove_handle($multi, $ch2);
    
    curl_multi_close($multi);
    
    


    이 코드에서는 두 개의 요청을 병렬로 처리하고, 결과를 받은 후에 각 요청의 결과를 확인합니다. 만약에 하나의 요청이 실패할 경우, 해당 요청의 결과는 NULL이 반환됩니다.

    2025-06-10 06:00

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 29,027건 / 1 페이지

검색

게시물 검색