
curl_multi_info_read 함수는 멀티 요청 처리 중 오류가 발생한 요청에 대한 정보를 반환합니다. 오류가 발생한 요청의 경우, return 값이 CURLE_OK이 아닌 CURLE_EFAIL, CURLE_OPERATION_TIMEDOUT, CURLE_SSL_CACERT, CURLE_SSL_CERTPROBLEM, CURLE_SSL_CIPHER 등과 같은 오류 코드가 반환됩니다.
오류가 발생한 요청의 경우, 데이터가 반환되지 않습니다. 이는 curl_multi_info_read 함수가 오류가 발생한 요청의 데이터를 반환하지 않기 때문입니다.
오류가 발생한 요청의 경우, 다음 방법으로 해결할 수 있습니다.
1. 오류가 발생한 요청의 데이터를 별도로 처리하는 함수를 만들고, 오류가 발생한 요청의 경우, 해당 함수를 호출하여 데이터를 처리합니다.
2. 오류가 발생한 요청의 경우, 데이터를 반환하지 않도록 처리합니다.
3. 오류가 발생한 요청의 경우, 오류 메시지를 반환하고, 오류가 발생한 요청의 데이터를 반환하지 않도록 처리합니다.
다음은 예제입니다.
#hostingforum.kr
php
$mh = curl_multi_init();
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
$multi_info = curl_multi_info_read($mh);
if ($multi_info['msg'] == CURLMSG_DONE) {
$ch = $multi_info['handle'];
$info = curl_getinfo($ch);
if ($info['http_code'] == 200) {
$data = curl_multi_getcontent($ch);
// 데이터 처리
} else {
// 오류 메시지 반환
echo "오류 메시지: " . curl_error($ch) . "n";
}
} else {
// 오류 메시지 반환
echo "오류 메시지: " . curl_error($ch) . "n";
}
이 예제에서는 오류가 발생한 요청의 경우, 오류 메시지를 반환하고, 오류가 발생한 요청의 데이터를 반환하지 않도록 처리합니다.
2025-03-18 00:20