현재 위치: > 최신 기사 목록> PHP curl_multi_getcontent() 함수에 대한 자세한 설명: 여러 cURL 세션의 반환 콘텐츠 가져오기

PHP curl_multi_getcontent() 함수에 대한 자세한 설명: 여러 cURL 세션의 반환 콘텐츠 가져오기

M66 2025-10-16

PHP 컬_다중_getcontent() 함수 소개

일상적인 PHP 개발에서 프로그래머는 API 인터페이스 요청, 원격 콘텐츠 획득 등과 같은 데이터를 위해 다른 서버와 상호 작용해야 하는 경우가 많습니다. cURL(클라이언트 URL) 확장 라이브러리는 이러한 네트워크 통신 작업을 단순화하는 강력한 도구 세트를 제공합니다. 그 중, 멀티세션 모드에서 실행된 cURL 요청의 결과를 얻기 위해 cur_multi_getcontent() 함수가 사용됩니다.

기능 효과

컬_멀티_getcontent() 함수의 주요 기능은 컬_멀티_init() 에 의해 생성된 여러 cURL 세션에서 각 세션의 반환 콘텐츠를 추출하는 것입니다. 동시에 여러 요청을 실행하기 위해 curl_multi_exec()를 사용할 때 이 함수를 호출하여 각 요청의 응답 결과를 얻을 수 있습니다. 사용법은 매우 간단합니다. 해당 cURL 리소스 핸들을 전달하기만 하면 됩니다.

Curl_multi_getcontent() 사용 예

 // 초기화cURL세션
$ch1 = curl_init('http://www.example.com/api1');
$ch2 = curl_init('http://www.example.com/api2');

// 새로 만들기cURL여러 핸들
$mh = curl_multi_init();

// 将两个세션添加到여러 핸들中
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);

// 执行여러 핸들的cURL세션
do {
    $status = curl_multi_exec($mh, $active);
} while ($status === CURLM_CALL_MULTI_PERFORM || $active);

// 循环获取每个세션的内容
$contents = array();
foreach([$ch1, $ch2] as $ch) {
    $content = curl_multi_getcontent($ch);
    $contents[] = $content;
}

// 关闭여러 핸들的cURL세션
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

// 획득한 내용을 출력
var_dump($contents);

코드 설명

위의 예에서는 두 개의 독립적인 cURL 요청이 먼저 컬_init() 을 통해 초기화된 다음, 컬_멀티_init()를 사용하여 다중 세션 핸들을 만들고 여기에 두 개의 요청을 추가합니다. curl_multi_exec() 함수를 통해 여러 요청을 동시에 실행할 수 있습니다.

실행 후, curl_multi_getcontent() 함수를 사용하여 각 세션의 응답 내용을 얻고 결과를 배열에 저장합니다. 마지막으로, 모든 세션을 닫고, curl_multi_remove_handle()cur_multi_close() 를 통해 리소스를 해제합니다.

사용상의주의 사항

cur_multi_getcontent() 를 호출하기 전에 대상 세션이 실행을 완료했는지 확인해야 합니다. 요청이 완료되기 전에 이 함수를 호출하면 불완전한 내용이나 null 값을 얻을 수 있습니다.

요약

컬_다중_getcontent() 함수는 동시 요청을 처리할 때 매우 유용합니다. 이는 개발자가 동시에 여러 API에 대한 요청을 시작하고 결과를 얻는 데 도움이 되므로 네트워크 통신의 효율성이 크게 향상됩니다. 동시 인터페이스 호출 구축 및 집계 데이터 캡처와 같은 시나리오에서 마스터할 가치가 있는 실용적인 기능입니다.