PHP의 비동기 GET 요청: 상세 가이드
소개
비동기 GET 요청 수행 PHP에서는 스크립트가 현재 실행 흐름을 차단하지 않고 원격 서버에 대한 요청을 시작할 수 있습니다. 이는 사용자 상호 작용을 지연시키지 않고 수많은 요청을 보내야 하는 웹 애플리케이션에 매우 유용합니다.
비동기 요청에 file_get_contents() 사용
file_get_contents()는 내장된 동기식 및 비동기식 GET 요청 모두에 활용될 수 있는 PHP 함수. 기본적으로 동기식으로 작동하여 요청이 완료될 때까지 스크립트를 차단합니다. 그러나 선택적 컨텍스트 인수를 제공하면 비동기 작업이 가능합니다.
동기 요청:
$output = file_get_contents('http://www.example.com/'); echo $output;
비동기 요청:
$context = stream_context_create([ 'http' => [ 'ignore_errors' => true ] ]); $output = file_get_contents('http://www.example.com/', false, $context);
사용 진정한 비동기 요청을 위한 fsockopen()
file_get_contents()의 비동기 동작조차 바람직하지 않은 상황의 경우 fsockopen()은 진정한 비동기성을 달성하기 위한 하위 수준 접근 방식을 제공합니다. 이 함수는 직접 소켓 통신을 허용합니다.
fsockopen()을 사용한 비동기 요청:
function curl_post_async($url) { // 1. Parse URL $parts = parse_url($url); // 2. Open Socket $fp = fsockopen($parts['host'], isset($parts['port']) ? $parts['port'] : 80, $errno, $errstr, 30); // 3. Construct Request $out = "GET " . $parts['path'] . " HTTP/1.1\r\n"; $out .= "Host: " . $parts['host'] . "\r\n"; $out .= "Connection: Close\r\n\r\n"; // 4. Send Request and Close Socket fwrite($fp, $out); fclose($fp); }
이 함수는 GET 요청을 즉시 시작합니다. , 응답을 기다리지 않고 호출자에게 제어권을 반환합니다. fsockopen()을 사용하려면 file_get_contents()에 비해 더 실제적인 접근 방식이 필요하다는 점에 유의해야 합니다.
위 내용은 PHP에서 비동기 GET 요청을 어떻게 수행할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!