현재 위치: > 최신 기사 목록> php에서 출력을 캡처하기 위해 OB_GET_CONTENTS ()를 사용하는 방법

php에서 출력을 캡처하기 위해 OB_GET_CONTENTS ()를 사용하는 방법

gitbox 2025-05-31

출력 버퍼링이란 무엇입니까?

기본적으로 Echo 또는 기타 출력 명령은 콘텐츠를 클라이언트 (브라우저)에 직접 전송합니다. 그러나 출력 버퍼링을 켜면 출력이 즉시 전송되지 않지만 버퍼에 먼저 저장되며 버퍼가 지워지거나 스크립트가 완료 될 때까지 출력되지 않습니다. 이런 식으로 스크립트 실행 중에 출력 컨텐츠를 캡처, 수정 및 리디렉션 할 수 있습니다.


ob_get_contents () 의 역할

OB_GET_CONTENTS ()는 현재 출력 버퍼에서 내용을 얻고 문자열을 반환하는 데 사용됩니다. 출력 버퍼링이 활성화되지 않은 경우 함수를 호출하면 False가 반환됩니다.


올바른 사용의 예

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

// 아날로그 출력 내용
echo "이것이 버퍼에있는 것입니다。";

// 버퍼 컨텐츠를 얻으십시오
$content = ob_get_contents();

// 내용을 처리하십시오,예를 들어 문자열을 교체하십시오
$processedContent = str_replace("완충기", "캐시 영역", $content);

// 清空并关闭완충기(선택 과목,또한 사용할 수 있습니다 ob_end_flush() 직접 출력)
ob_end_clean();

// 처리 된 컨텐츠를 수동으로 출력합니다
echo $processedContent;
?>

위의 예에서 :

  1. OB_START ()를 사용하여 출력 버퍼링을 활성화하십시오.

  2. 에코를 사용한 내용물 출력은 버퍼에 저장됩니다.

  3. OB_GET_CONTENTS () 를 통해 버퍼 컨텐츠를 변수 $ 컨텐츠 로 읽으십시오.

  4. $ processedContent를 얻으려면 컨텐츠를 문자열로 교체하십시오.

  5. OB_END_CLEAN ()을 사용하여 버퍼를 지우고 닫으려면 컨텐츠의 반복 된 출력을 방지하십시오.

  6. 마지막으로, 처리 된 컨텐츠를 수동으로 출력하십시오.


실제 응용 시나리오

1. 템플릿 렌더링 결과 캡처

간단한 PHP 템플릿 렌더링을 사용하고 템플릿 출력을 캡처 한 다음 캐시 또는 수정하려면 출력 버퍼링이 매우 유용합니다.

 <?php
ob_start();
include 'template.php';  // 템플릿 파일 출력 HTML
$html = ob_get_contents();
ob_end_clean();

// 오른쪽 $html 은닉처、압축 또는 기타 처리
file_put_contents('cache/page.html', $html);

// 마지막으로 처리 된 페이지를 출력합니다
echo $html;
?>

2. 타사 라이브러리의 출력을 처리하십시오

일부 타사 라이브러리는 컨텐츠를 직접 출력하지만 이러한 출력, 균일 한 형식 또는 포장 처리를 가로 채려고합니다.

 <?php
ob_start();
third_party_function();  // 직접 출력内容的函数
$output = ob_get_contents();
ob_end_clean();

// 예를 들어, 포장은입니다 JSON 형식 반환
echo json_encode(['data' => $output]);
?>

주목해야 할 것

  • OB_GET_CONTENTS ()를 사용하기 전에 버퍼가 켜져 있는지 확인해야합니다 ( OB_START () 호출). 그렇지 않으면 False가 반환됩니다.

  • OB_END_CLEAN ()을 호출하면 콘텐츠를 출력하지 않고 버퍼를 닫고 지울 수 있습니다. OB_END_FLUSH ()를 호출하면 버퍼가 닫히고 컨텐츠를 출력합니다.

  • 출력 버퍼는 중첩 될 수 있으며 OB_GET_CONTENTS ()는 현재 활성 버퍼의 내용 만 가져옵니다.


결론

OB_GET_CONTENTS () 는 PHP 출력 프로세스를 제어하는 ​​강력한 도구입니다. 출력 버퍼링 메커니즘과 함께 템플릿 캡처, 출력 캐시 및 동적 컨텐츠 교체와 같은 다양한 고급 기능을 실현할 수 있습니다. 출력 버퍼링의 원칙 및 사용 방법을 마스터하면 PHP 출력에 대한 제어가 크게 향상됩니다.