티스토리 뷰
반응형
curl_multi_init()은 PHP에서 여러 cURL 요청을 동시에 병렬로 처리할 수 있게 해주는 함수. 이를 통해 여러 HTTP 요청을 순차적으로 처리하는 것보다 훨씬 빠르게 네트워크 작업을 수행할 수 있음.
✅ PHP curl_multi_init() 사용 예제
<?php
// 요청할 URL 목록
$urls = [
"https://jsonplaceholder.typicode.com/posts/1",
"https://jsonplaceholder.typicode.com/posts/2",
"https://jsonplaceholder.typicode.com/posts/3"
];
// 각 curl 핸들을 저장할 배열
$curl_handles = [];
$multi_handle = curl_multi_init(); // 멀티 핸들 초기화
// 각 요청별로 curl 핸들 생성 및 설정
foreach ($urls as $i => $url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 결과를 문자열로 반환
curl_multi_add_handle($multi_handle, $ch); // 멀티 핸들에 추가
$curl_handles[$i] = $ch;
}
// 실행
$running = null;
do {
curl_multi_exec($multi_handle, $running);
curl_multi_select($multi_handle); // 대기
} while ($running > 0);
// 결과 가져오기
foreach ($curl_handles as $i => $ch) {
$response = curl_multi_getcontent($ch);
echo "Response from URL {$urls[$i]}:\n";
echo $response . "\n\n";
curl_multi_remove_handle($multi_handle, $ch); // 핸들 제거
curl_close($ch); // 핸들 닫기
}
// 멀티 핸들 닫기
curl_multi_close($multi_handle);
?>
💡 설명
- curl_multi_init() : 멀티 cURL 핸들을 초기화.
- curl_multi_add_handle() : 개별 cURL 요청을 멀티 핸들에 추가.
- curl_multi_exec() : 실제 요청을 병렬로 수행.
- curl_multi_select() : 블로킹 방식으로 대기하여 CPU 과다 사용을 방지.
- curl_multi_getcontent() : 각 요청의 응답 데이터를 가져옴.
- curl_multi_remove_handle() 및 curl_close() : 리소스 정리를 위한 함수.
반응형
'배움 > PHP' 카테고리의 다른 글
| Eloquent 관계 (2) | 2025.07.29 |
|---|---|
| uniqid() (0) | 2025.07.16 |
| call_user_func (0) | 2025.07.14 |
| array_combine 함? (1) | 2025.07.11 |
| ReflectionClass ? (0) | 2025.07.04 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ubuntu
- call_user_func
- php
- 설정
- laravel 11
- fromArray
- laravel 테스트
- ob_get_contents
- Laravel
- mysql
- flask
- createfromformat
- laravel 12
- reflectionclass
- curl_multi_init
- privatechannel
- wsl
- 설치
- eclipse
- jp:a
- OpenAI GPT
- array_combine
- uniqid
- PYTHON
- facades
- 비동기
- eloquent
- WSL2
- 명령어
- swagger
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
글 보관함
