PHP: 병렬 cURL 요청을 실행하는 방법
여러 URL에서 효율적으로 데이터를 검색해야 하는 상황을 처리할 때 병렬 cURL 요청 필수품이 되었습니다. 이러한 맥락에서 file_get_contents($url)를 사용하여 15개의 서로 다른 URL에서 JSON 데이터를 검색하려는 시나리오를 고려해 보겠습니다.
순차 요청을 만들기 위해 간단한 루프를 사용하는 현재 접근 방식은 다음으로 인해 상당한 속도 저하를 초래할 수 있습니다. file_get_contents의 동기적 특성. 이는 스크립트가 다음 요청을 진행하기 전에 각 요청이 완료될 때까지 기다려야 함을 의미합니다.
이 문제를 극복하기 위해 다중 cURL 요청을 활용할 수 있습니다. 이를 수행하는 방법은 다음과 같습니다.
$nodes = array($url1, $url2, $url3); $node_count = count($nodes); $curl_arr = array(); $master = curl_multi_init(); for ($i = 0; $i < $node_count; $i++) { $url = $nodes[$i]; $curl_arr[$i] = curl_init($url); curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($master, $curl_arr[$i]); } do { curl_multi_exec($master, $running); } while ($running > 0); for ($i = 0; $i < $node_count; $i++) { $results[] = curl_multi_getcontent($curl_arr[$i]); } print_r($results);
이 스크립트는 다중 컬 컨텍스트를 생성하고 여기에 각 URL을 별도의 간편 핸들로 추가합니다. 그런 다음 루프를 사용하여 모든 Easy Handle을 반복하고 동시에 실행하고 결과를 수집합니다. 마지막으로 모든 URL에서 검색된 콘텐츠를 인쇄합니다.
병렬 cURL 요청을 사용하면 스크립트 성능을 크게 향상하고 여러 URL에서 데이터를 검색하는 데 필요한 시간을 줄일 수 있습니다.
위 내용은 PHP에서 여러 URL의 데이터를 효율적으로 검색하기 위해 병렬 cURL 요청을 실행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!