라이브러리

[PHP] curl_multi_setopt - cURL 다중 옵션 설정




Curl Multi

PHP의 `curl_multi`는 다중 커넥션을 관리하는 기능입니다. 하나의 요청을 여러 서버에 동시에 보내고, 결과를 기다리는 시간을 줄여서 성능을 향상시킬 수 있습니다.

curl_multi_setopt


`curl_multi_setopt` 함수는 `curl_multi` 객체에 옵션을 설정하는 함수입니다. 이 함수를 사용하여 `curl_multi` 객체의 다양한 옵션을 설정할 수 있습니다.

# 옵션


* `CURLOPT_RETURNTRANSFER`: 결과를 문자열로 반환하는지 여부를 결정합니다. 기본값은 `true`입니다.
* `CURLOPT_TIMEOUT`: 요청을 보내는 데 걸리는 시간을 초 단위로 지정합니다. 기본값은 `0`입니다.
* `CURLOPT_TIMEOUT_MS`: 요청을 보내는 데 걸리는 시간을 밀리초 단위로 지정합니다. 기본값은 `0`입니다.
* `CURLOPT_MAXREDIRS`: 리다이렉션의 최대 횟수를 지정합니다. 기본값은 `20`입니다.
* `CURLOPT_MAXCONNECTS`: 커넥션의 최대 수를 지정합니다. 기본값은 `0`입니다.
* `CURLOPT_FRESH_CONNECT`: 새로운 커넥션을 열지 여부를 결정합니다. 기본값은 `true`입니다.
* `CURLOPT_FORBID_REUSE`: 커넥션을 재사용하는지 여부를 결정합니다. 기본값은 `false`입니다.
* `CURLOPT_FRESH_CONNECTS`: 새로운 커넥션을 열지 여부를 결정합니다. 기본값은 `true`입니다.
* `CURLOPT_DNS_CACHE_TIMEOUT`: DNS 캐시의 유효 시간을 초 단위로 지정합니다. 기본값은 `60`입니다.
* `CURLOPT_DNS_CACHE_SIZE`: DNS 캐시의 크기를 지정합니다. 기본값은 `0`입니다.
* `CURLOPT_PIPEWAIT`: 파이프를 기다리는지 여부를 결정합니다. 기본값은 `true`입니다.
* `CURLOPT_IPRESOLVE`: IP 주소의 해결 방법을 지정합니다. 기본값은 `CURL_IPRESOLVE_V4`입니다.

예제


다음은 `curl_multi_setopt` 함수를 사용하여 `curl_multi` 객체의 옵션을 설정하는 예제입니다.

#hostingforum.kr
php

$ch1 = curl_init('http://example.com');

curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);



$ch2 = curl_init('http://example.com');

curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);



$mh = curl_multi_init();

curl_multi_add_handle($mh, $ch1);

curl_multi_add_handle($mh, $ch2);



curl_multi_setopt($mh, CURLOPT_RETURNTRANSFER, true);

curl_multi_setopt($mh, CURLOPT_TIMEOUT, 5);



curl_multi_exec($mh, $active);



while ($active) {

    curl_multi_select($mh);

    $active = curl_multi_exec($mh, $active);

}



$result1 = curl_multi_getcontent($ch1);

$result2 = curl_multi_getcontent($ch2);



echo $result1 . "
";

echo $result2 . "
";



curl_multi_remove_handle($mh, $ch1);

curl_multi_remove_handle($mh, $ch2);

curl_multi_close($mh);



이 예제에서는 `curl_multi_setopt` 함수를 사용하여 `curl_multi` 객체의 `CURLOPT_RETURNTRANSFER` 옵션과 `CURLOPT_TIMEOUT` 옵션을 설정합니다. 또한 `curl_multi_add_handle` 함수를 사용하여 다중 커넥션을 추가하고, `curl_multi_exec` 함수를 사용하여 요청을 보내고, `curl_multi_getcontent` 함수를 사용하여 결과를 가져옵니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 634 페이지

검색

게시물 검색