라이브러리
[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` 함수를 사용하여 결과를 가져옵니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.