>  기사  >  백엔드 개발  >  PHP 함수 소개—curl_multi_add_handle(): 여러 핸들이 있는 세션에 cURL 핸들 추가

PHP 함수 소개—curl_multi_add_handle(): 여러 핸들이 있는 세션에 cURL 핸들 추가

PHPz
PHPz원래의
2023-07-27 09:03:301161검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.