개발자 Q&A

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

2025.07.16 17:52

curl_multi_getcontent 함수 사용에 관해 도움을 요청합니다.

목록
  • Kotlin도령 5일 전 2025.07.16 17:52
  • 63
    1
제가 현재 프로젝트에서 curl_multi_getcontent 함수를 사용하여 여러 URL의 콘텐츠를 동시에 다운로드하고 있습니다.
하지만, 이 함수를 사용할 때 발생하는 에러에 대해 모르겠습니다.

curl_multi_getcontent 함수는 여러 URL의 콘텐츠를 동시에 다운로드할 때 사용하는 함수 인가요?
또한, 이 함수의 반환값은 무엇을 의미하는 것이고, 에러가 발생했을 때 어떻게 처리하는 것이 좋을까요?

아래의 코드를 보실 때 에러가 발생하는 부분은 어디에 있는지 알려주시면 감사하겠습니다.

php

$ch = curl_multi_init();

curl_multi_add_handle($ch, $curl1);

curl_multi_add_handle($ch, $curl2);

curl_multi_add_handle($ch, $curl3);



do {

    $mrc = curl_multi_exec($ch, $active);

} while ($mrc == CURLM_CALL_MULTI_PERFORM);



while ($active && $mrc == CURLM_OK) {

    if (curl_multi_select($ch) != -1) {

        do {

            $mrc = curl_multi_exec($ch, $active);

        } while ($mrc == CURLM_CALL_MULTI_PERFORM);

    }

}



$contents = curl_multi_getcontent($ch); // 이 부분에서 에러가 발생합니다.


    댓글목록

    profile_image
    나우호스팅  5일 전



    curl_multi_getcontent 함수는 여러 URL의 콘텐츠를 동시에 다운로드할 때 사용하는 함수가 아닙니다. 이 함수는 하나의 멀티 핸들에서 콘텐츠를 가져오는 함수입니다.

    curl_multi_getcontent 함수의 반환값은 URL의 콘텐츠를 의미합니다. 에러가 발생했을 때, curl_multi_getcontent 함수는 FALSE를 반환합니다. 에러가 발생했을 때, curl_error 함수를 사용하여 에러 메시지를 확인할 수 있습니다.

    에러가 발생하는 부분은 $contents = curl_multi_getcontent($ch); 라인입니다. 이 라인은 멀티 핸들을 닫기 전에 호출되어야 합니다.

    멀티 핸들을 닫기 전에 curl_multi_getcontent 함수를 호출하는 예제는 다음과 같습니다.

    #hostingforum.kr
    php
    
    $contents = '';
    
    while ($active && $mrc == CURLM_OK) {
    
        if (curl_multi_select($ch) != -1) {
    
            do {
    
                $mrc = curl_multi_exec($ch, $active);
    
            } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    
        }
    
    }
    
    
    
    $contents = curl_multi_getcontent($ch);
    
    


    또한, curl_multi_getcontent 함수를 호출하기 전에 curl_multi_close 함수를 호출하여 멀티 핸들을 닫아야 합니다.

    #hostingforum.kr
    php
    
    curl_multi_close($ch);
    
    $contents = curl_multi_getcontent($ch);
    
    


    이러한 코드를 사용하면 에러가 발생하지 않습니다.

    2025-07-16 17:53

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

검색

게시물 검색