php에서 curl_multi_init () 함수는 여러 컬어 요청을 동시에 처리 할 수있는 세션을 초기화하는 데 사용됩니다. 이 기능을 통해 새로운 curl_multi 핸들을 만들고 리소스 핸들을 반환 할 수 있습니다. 이 세션 핸들을 사용하여 여러 CURL 요청 핸들을 세션에 추가하여 여러 URL을 병렬로 처리하는 기능을 달성 할 수 있습니다.
자원 curl_multi_init (void);
성공하면 curl_multi_init ()가 세션 핸들을 반환합니다. 실패하면 거짓이 반환됩니다.
다음은 curl_multi_init () 함수로 여러 컬 세션을 초기화하는 방법을 보여주는 간단한 예입니다. 동시에 여러 요청을 보냅니다.
<?php
// 세션을 초기화하십시오
$mh = curl_multi_init();
// 만들다 URL 목록
$urls = array(
'http://www.example.com/url1',
'http://www.example.com/url2',
);
// 만들다 cURL 세션을 처리하고 추가하십시오
$handles = array();
foreach ($urls as $url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch);
$handles[] = $ch;
}
// 세션을 실행하십시오 cURL 핸들
$active = null;
do {
$result = curl_multi_exec($mh, $active);
} while ($result == CURLM_CALL_MULTI_PERFORM || $active);
// 처리 결과
foreach ($handles as $handle) {
$response = curl_multi_getcontent($handle);
// 응답 데이터 처리
echo $response;
// 移除핸들并关闭 cURL
curl_multi_remove_handle($mh, $handle);
curl_close($handle);
}
// 세션을 닫으십시오
curl_multi_close($mh);
?>
위의 코드는 먼저 curl_multi_init () 를 통해 새 컬 세션을 초기화합니다. 다음으로 URL 목록을 정의하고 목록을 반복하고 Curl_Init ()를 사용하여 각 URL에 대한 CURL 요청 핸들을 작성하고 세션에 추가하십시오.
그런 다음 세션의 모든 컬 요청은 Curl_multi_exec () 를 통해 실행됩니다. 요청이 완료된 후 각 요청의 응답 데이터는 Curl_Multi_GetContent () 를 통해 얻어지고 추가 처리됩니다. 마지막으로 Curl_Multi_Remove_handle ()을 사용하여 핸들을 제거하고 Curl_Close () 를 통해 각 컬 요청을 닫고 마지막으로 Curl_Multi_Close () 를 통해 전체 세션을 닫습니다.
CURL_MULTI_INIT () 함수를 사용함으로써 PHP 프로그램은 여러 CURL 요청을 동시에 처리 할 수 있으므로 특히 여러 API 요청이 필요하거나 데이터의 배치 다운로드가 필요한 경우 실행 효율성을 향상시킬 수 있습니다.
curl_multi_init () 함수 및 관련 기능 사용을 마스터하면 PHP의 네트워크 요청 처리 기능을 향상시키는 데 도움이 될뿐만 아니라 병렬 요청 및 성능 최적화에 대한 이해가 심화됩니다.
관련 태그:
cURL