>  기사  >  백엔드 개발  >  PHP 함수 소개—curl_multi_init(): 다중 cURL 세션 초기화

PHP 함수 소개—curl_multi_init(): 다중 cURL 세션 초기화

王林
王林원래의
2023-07-24 12:40:471020검색

PHP 함수 소개—curl_multi_init(): 여러 cURL을 사용하여 세션 초기화

소개:
PHP에서 curl_multi_init() 함수는 여러 cURL이 있는 세션을 초기화하는 데 사용되며 여러 URL 요청을 동시에 처리할 수 있습니다. 이 함수는 새로운 컬_멀티 핸들을 생성하고 리소스 핸들을 반환합니다. 이 세션에서는 여러 cURL 핸들을 추가하고 실행하여 동시에 여러 URL을 처리하는 목적을 달성할 수 있습니다.

구문: ​​
resourcecurl_multi_init(void)

반환 값:
성공하면 세션 핸들을 반환하고, 실패하면 FALSE를 반환합니다.

코드 예:
다음은 cur_multi_init() 함수를 사용하여 여러 cURL 세션을 초기화하고 두 개의 URL 요청을 동시에 처리하는 방법을 보여주는 간단한 예제 코드입니다.

<?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);
?>

분석:
위 예제 코드에서는 먼저 cur_multi_init() 함수를 사용하여 세션을 초기화한 후 URL 목록을 생성합니다. 다음으로 foreach 루프를 사용하여 URL 목록을 순회하고, 컬_init() 함수를 사용하여 여러 cURL 핸들을 만듭니다. CURLOPT_RETURNTRANSFER 옵션은 응답 데이터를 반환하도록 설정됩니다. 그런 다음 cur_multi_add_handle() 함수를 사용하여 각 핸들을 세션에 추가하고 핸들을 $handles 배열에 저장합니다.

이후에는 세션 내 모든 핸들을 동시에 실행하기 위해 curl_multi_exec() 함수를 사용합니다. 반환 값 $result와 활성 핸들 수 $active를 가져오고 do-while 루프에서 실행을 계속해야 하는지 여부를 결정합니다.

루프가 끝난 후, 컬_다중_getcontent() 함수를 사용하여 각 핸들의 응답 데이터를 얻어서 처리합니다. 그런 다음 curl_multi_remove_handle() 함수를 사용하여 세션에서 핸들을 제거하고, 컬_close() 함수를 사용하여 각 cURL 핸들을 닫습니다.

마지막으로, curl_multi_close() 함수를 사용하여 세션을 닫습니다.

요약:
curl_multi_init() 함수를 사용하면 여러 cURL 세션을 쉽게 초기화하고 여러 URL 요청을 동시에 처리하는 기능을 구현할 수 있습니다. 이는 여러 API를 요청하거나 동시에 여러 파일을 다운로드해야 할 때 유용합니다. curl_multi_init() 함수를 사용하면 프로그램의 효율성과 응답 속도를 향상시킬 수 있습니다.

그래서, cur_multi_init() 함수와 기타 관련 cURL 함수를 배우고 익히면 PHP의 네트워크 요청 함수에 대한 더 깊은 이해와 응용을 얻을 수 있습니다.

위 내용은 PHP 함수 소개—curl_multi_init(): 다중 cURL 세션 초기화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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