PHP 함수 소개—curl_multi_add_handle(): 여러 핸들이 있는 세션에 cURL 핸들 추가
네트워크 요청 개발에서 PHP의 컬 함수 라이브러리는 가장 일반적으로 사용되는 도구 라이브러리 중 하나입니다. GET 및 POST 요청, 요청 헤더 설정, 쿠키 전송 및 수신 등 다양한 HTTP 요청을 수행하는 많은 기능을 제공합니다.
curl 함수 라이브러리를 사용하다 보면 여러 요청이 동시에 전송되는 상황을 자주 접하게 됩니다. 각 요청에 별도의 cURL 핸들을 사용하면 리소스가 낭비됩니다. 이때, PHP에서 제공하는 컬_멀티_추가_핸들() 함수를 이용하면 세션에 여러 개의 cURL 핸들을 추가하여 관리할 수 있습니다.
curl_multi_add_handle() 함수의 구문은 다음과 같습니다.
resource curl_multi_add_handle ( resource $mh , resource $ch )
매개변수 $mh는 초기화된 cURL 세션 핸들을 나타내고 $ch는 추가할 새 cURL 세션 핸들을 나타냅니다. 이 함수는 $mh를 처리하기 위해 $ch 핸들을 추가하고 cURL 다중 핸들을 반환합니다.
다음은 컬_멀티_추가_핸들() 함수를 사용한 샘플 코드입니다.
<?php $mh = curl_multi_init(); // 初始化一个cURL会话句柄 $ch1 = curl_init(); curl_setopt($ch1, CURLOPT_URL, "https://www.example.com/api1"); curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); // 设置返回值不直接输出 curl_multi_add_handle($mh, $ch1); // 将第一个cURL句柄添加到会话中 $ch2 = curl_init(); curl_setopt($ch2, CURLOPT_URL, "https://www.example.com/api2"); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($mh, $ch2); // 将第二个cURL句柄添加到会话中 // 循环执行直到所有请求完成 do { $status = curl_multi_exec($mh, $running); } while ($status === CURLM_CALL_MULTI_PERFORM || $running); // 获取第一个请求的结果 $response1 = curl_multi_getcontent($ch1); echo "Response 1: " . $response1 . " "; // 获取第二个请求的结果 $response2 = curl_multi_getcontent($ch2); echo "Response 2: " . $response2 . " "; // 关闭会话句柄 curl_multi_remove_handle($mh, $ch1); curl_multi_remove_handle($mh, $ch2); curl_multi_close($mh); ?>
위 샘플 코드에서 cURL 세션 핸들 $mh는 먼저 컬_멀티_init() 함수를 사용하여 초기화됩니다. 그런 다음 두 개의 독립적인 cURL 세션 핸들 $ch1 및 $ch2가 생성되고 요청된 URL과 일부 기타 옵션이 컬_setopt() 함수를 사용하여 설정됩니다. 다음으로, 세션 핸들 $mh에 $c1과 $c2를 추가하기 위해 cur_multi_add_handle() 함수를 사용합니다. 그런 다음 모든 요청이 완료될 때까지 curl_multi_exec() 함수를 사용하여 루프에서 여러 요청을 실행합니다. 마지막으로, curl_multi_getcontent() 함수를 사용하여 각 요청의 결과를 얻어서 출력합니다.
curl_multi_add_handle() 함수를 사용하면 여러 cURL 핸들의 세션을 효과적으로 관리할 수 있어 네트워크 요청 효율성과 코드 유지 관리성이 향상됩니다. 실제 개발에서는 컬_멀티_리무브_핸들() 및 컬_멀티_닫기() 함수와 같은 다른 함수를 결합하여 더 복잡한 네트워크 요청 작업을 완료할 수도 있습니다.
요약하자면, cur_multi_add_handle() 함수는 관리를 위해 세션에 여러 개의 cURL 핸들을 추가하여 네트워크 요청의 효율성과 코드의 유지 관리성을 향상시킬 수 있는 매우 유용한 함수입니다. 실제 개발에서는 이 기능을 사용하여 여러 네트워크 요청을 동시에 보내고 필요에 따라 각 요청을 처리할 수 있습니다.
위 내용은 PHP 함수 소개—curl_multi_add_handle(): 여러 핸들이 있는 세션에 cURL 핸들 추가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!