PHP에서 Curl_multi_* 기능 패밀리는 여러 컬 요청을 동시에 실행하는 데 사용됩니다. curl_multi_close () 는이 시리즈에서 curl_multi_init () 에 의해 초기화 된 다중 컬 핸들을 닫는 데 중요한 기능입니다.
curl_multi_* 기능 패밀리는 여러 컬어 요청을 병렬로 처리하기위한 PHP의 도구입니다. 다음 요청을 보내기 전에 각 요청이 완료되기를 기다리지 않고 여러 HTTP 요청을 동시에 보낼 수 있습니다. 이러한 방식으로, 특히 여러 API 또는 웹 사이트를 요청 해야하는 경우 여러 요청을 크게 처리 할 수 있습니다.
일반적인 curl_multi_* 함수는 다음과 같습니다.
curl_multi_init () : 여러 컬 핸들을 초기화합니다.
curl_multi_add_handle () : 멀티 핸들에 단일 컬 핸들을 추가합니다.
curl_multi_exec () : 여러 컬 요청을 실행합니다.
curl_multi_getContent () : 컬 핸들의 내용을 가져옵니다.
curl_multi_close () : curl_multi_init () 에 의해 생성 된 멀티 핸들을 닫고 모든 리소스를 해방시킵니다.
Curl_multi_* 함수를 사용하여 여러 CURL 요청이 실행되면 각 요청은 독립적이며 각 요청에는 자체 자원 소비가 있습니다. 요청이 완료된 후 이러한 리소스를 제 시간에 해제 할 수 있으려면 Curl_Multi_Close ()를 호출하여 연결을 닫아야합니다.
curl_multi_close ()를 사용하지 않으면 이러한 컬 핸들은 계속 메모리 및 기타 리소스를 차지하여 성능 문제와 메모리 누출을 유발할 수 있습니다. 따라서 요청이 완료된 후 이러한 연결을 올바르게 닫는 것이 매우 중요합니다.
다음은 Curl_multi_Close ()를 사용하여 여러 컬 연결을 닫는 방법을 보여주는 예입니다.
<?php
// 다중 초기화 cURL 핸들
$mh = curl_multi_init();
// 요청할 내용을 정의하십시오 URL 목록
$urls = [
"https://gitbox.net/api/endpoint1",
"https://gitbox.net/api/endpoint2",
"https://gitbox.net/api/endpoint3"
];
// 저장 cURL 핸들
$ch_handles = [];
// 각각을 만듭니다 cURL 핸들并添加到 multi 핸들中
foreach ($urls as $url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch);
$ch_handles[] = $ch;
}
// 여러 요청을 수행하십시오
$running = null;
do {
curl_multi_exec($mh, $running);
} while ($running > 0);
// 각 요청의 내용을 가져 와서 닫으십시오 cURL 핸들
foreach ($ch_handles as $ch) {
$content = curl_multi_getcontent($ch);
echo $content . "\n"; // 반환 된 컨텐츠를 출력하십시오
curl_multi_remove_handle($mh, $ch);
curl_close($ch); // 각각을 닫습니다 cURL 핸들
}
// 폐쇄 multi 핸들
curl_multi_close($mh);
?>
여러 컬 핸들 초기화 :
curl_multi_init ()를 사용하여 여러 컬 요청을 관리하는 새 멀티 핸들을 만듭니다.
여러 컬 핸들 추가 :
각 URL에 대한 컬 핸들을 만들고 관련 옵션을 설정 한 다음 Curl_multi_add_handle () 을 통해이 핸들을 멀티 핸들에 추가하십시오.
요청을 실행하십시오 .
curl_multi_exec ()를 사용하여 모든 요청이 완료 될 때까지 모든 요청을 실행하십시오.
내용을 가져 와서 핸들을 닫습니다 .
curl_multi_getContent ()를 사용하여 각 컬 핸들에서 컨텐츠를 반환하십시오. 완료되면 curl_multi_remove_handle ()을 통해 멀티 핸들에서 핸들을 제거하고 curl_close ()를 사용하여 각 개별 컬 핸들을 닫습니다.
멀티 핸들을 닫습니다 .
마지막으로 Curl_multi_Close ()를 호출하여 멀티 핸들을 닫고 모든 리소스를 자유롭게하십시오.
Curl_multi_Close () 의 올바른 사용은 다중 CURL 요청 리소스가 적시에 해제되도록하는 핵심 단계입니다. 여러 요청을 병렬로 처리 할 때 각 요청이 실행되면 Curl_Multi_Close ()를 호출하여 모든 관련 컬 연결을 닫으십시오. 이것은 메모리 누출을 방지 할뿐만 아니라 코드의 효율성을 향상시킵니다.