반응형
일반적인 동기 실행 요청 코드
//일반적인 동기 실행 요청 코드
<?php
function makeCurlRequest($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$urlarr = explode(">", $response); //본인이 정한 조건
return substr($urlarr[22], 0, -9); //본인이 정한 조건
}
$url1 = "https://test1.com";
$url2 = "https://test2.com";
$url3 = "https://test3.com";
$urlres1 = makeCurlRequest($url1);
$urlres2 = makeCurlRequest($url2);
$urlres3 = makeCurlRequest($url3);
echo "$urlres1<br>";
echo "$urlres2<br>";
echo "$urlres3";
?>
curl_multi_exec를 통해 병렬 요청
// curl_multi_exec를 통해 병렬 요청
<?php
function makeMultiCurlRequests($urls) {
$multiCurlHandler = curl_multi_init();
$curlHandlers = [];
$responses = [];
foreach ($urls as $url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
curl_multi_add_handle($multiCurlHandler, $ch);
$curlHandlers[] = $ch;
}
$running = null;
do {
curl_multi_exec($multiCurlHandler, $running);
} while ($running > 0);
foreach ($curlHandlers as $index => $ch) {
$response = curl_multi_getcontent($ch);
// 여기서 각 응답을 처리하거나 저장
$urlarr = explode(">", $response); //본인이 정한 조건
$responses[$index] = substr($urlarr[22], 0, -9); //본인이 정한 조건
curl_multi_remove_handle($multiCurlHandler, $ch);
}
curl_multi_close($multiCurlHandler);
return $responses;
}
$urls = array(
"https://test1.com",
"https://test2.com",
"https://test3.com"
);
$responses = makeMultiCurlRequests($urls);
// $responses 배열에는 각 URL에 대한 응답이 저장
$urlres1 = $responses[0];
$urlres2 = $responses[1];
$urlres3 = $responses[2];
echo "$urlres1<br>";
echo "$urlres2<br>";
echo "$urlres3";
?>
결론 : 후자가 curl 처리에 있어서 훨씬 빠름
반응형
'Coding > PHP' 카테고리의 다른 글
[PHP] 복잡한 JSON 파일 PHP로 파싱 (0) | 2023.02.25 |
---|---|
[PHP] PHP로 Ping 모니터링 구현 (0) | 2022.12.02 |
[PHP] 특정 영역 자동 스크린샷 저장 후 가장 최신 이미지 DB 저장 (0) | 2022.11.30 |
[PHP] 특정 디렉터리에서 가장 최신 파일 출력 및 SQL ISNERT (0) | 2022.11.30 |
[PHP] PHP에서 MySQL로 간단한 이미지 업로드 및 불러오기 (0) | 2022.11.28 |
댓글