현재 위치: > 최신 기사 목록> OB_GET_CONTENTS () 비동기 요청의 결과를 캡처하고 표시합니다.

OB_GET_CONTENTS () 비동기 요청의 결과를 캡처하고 표시합니다.

gitbox 2025-05-28

ob_get_contents () 란 무엇입니까?

OB_GET_CONTENTS ()는 현재 PHP 출력 버퍼의 내용을 얻는 데 사용됩니다. OB_START () 와 결합하여 출력 컨텐츠를 브라우저로 직접 보내지 않고 출력 컨텐츠를 먼저 저장할 수 있으므로 출력을 이차적으로 처리하거나 저장할 수 있습니다.

 ob_start();  // 출력 버퍼를 켭니다
echo "Hello, world!";
$content = ob_get_contents();  // 버퍼 컨텐츠를 얻으십시오
ob_end_clean();  // 버퍼를 닫고 내용을 지우십시오
echo "Captured content: " . $content;

위의 코드는 Echo에 의해 문자열 출력을 캡처하고 $ 컨텐츠 로 저장 한 다음 출력합니다.


OB_GET_CONTENTS ()를 사용하여 비동기 요청의 결과를 캡처하는 이유는 무엇입니까?

비동기 요청은 일반적으로 javaScript (예 : AJAX)를 통해 서버에 요청을 보내고 페이지를 새로 고치지 않고 반환 결과를 얻는 클라이언트를 참조합니다. PHP가 서버 측에서 이러한 요청을 처리하면 때때로 출력 컨텐츠를 캡처 한 다음 처리 후 프론트 엔드로 반환해야합니다.

OB_GET_CONTENTS () 를 통해 비동기 요청 (예 : 템플릿으로 렌더링 된 콘텐츠 등)의 실행 결과를 백그라운드에서 캡처 한 다음 응답으로 프론트 엔드로 돌아와 유연성을 향상시킬 수 있습니다.


PHP 비동기 요청 샘플 교육

Ajax를 통해 async_handler.php 에 요청을 보내면 PHP는 동적으로 생성 된 컨텐츠를 반환해야합니다. OB_GET_CONTENTS ()를 사용하여 출력을 캡처하고 발신자에게 반환합니다.

async_handler.php

 <?php
// 출력 버퍼링을 켭니다
ob_start();

// 비동기 처리 로직을 시뮬레이션합니다
echo "<div>이것은 비동기식으로 반환됩니다,현재 시간:" . date('H:i:s') . "</div>";

// 버퍼 컨텐츠를 캡처합니다
$content = ob_get_contents();

// 버퍼를 닫고 청소하십시오
ob_end_clean();

// 캡처 된 컨텐츠를 응답으로 출력하십시오
echo $content;
?>

프론트 엔드 Ajax 호출 예제 (jQuery 기반)

 $.ajax({
    url: 'http://gitbox.net/async_handler.php',
    method: 'GET',
    success: function(response) {
        // 반환 된 콘텐츠를 페이지에 삽입하십시오
        $('#result').html(response);
    },
    error: function() {
        alert('요청이 실패했습니다');
    }
});

CURL과 결합하여 비동기 요청 캡처 (서버 측 호출)

때때로 우리는 PHP 내에서 비동기 요청을 시작하고 결과를 얻기를 원합니다.이 결과는 CURL 과 결합 된 OB_GET_CONTENTS ()를 사용하여 구현할 수 있습니다.

 <?php
function getAsyncContent($url) {
    ob_start();

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    curl_close($ch);

    echo $result; // 산출 curl 콘텐츠로 돌아갑니다

    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}

$url = "http://gitbox.net/async_handler.php";
$response = getAsyncContent($url);
echo "서버의 비동기 요청 결과:" . $response;
?>

요약

  • OB_GET_CONTENTS ()를 사용하면 PHP 스크립트의 출력 버퍼 컨텐츠와 유연한 프로세스 출력 데이터를 캡처 할 수 있습니다.

  • 비동기 요청 처리에서는 버퍼를 사용하여 동적 컨텐츠를 쉽게 제어하고 반환하기 위해 결과를 캡처합니다.

  • 프론트 엔드 AJAX 요청이든 PHP 서버가 비동기 호출을 시작하든 OB_GET_CONTENTS ()는 출력을 얻고 작동하여 응용 프로그램의 확장 성과 유지 가능성을 향상시키는 데 도움이 될 수 있습니다.

이 기술이 마스터되면 복잡한 비동기 논리를 다룰 때 더 편안 할 것입니다.