현재 위치: > 최신 기사 목록> OB_LIST_HANDLERS 및 OB_GET_Contents를 함께 사용하기위한 고급 팁

OB_LIST_HANDLERS 및 OB_GET_Contents를 함께 사용하기위한 고급 팁

gitbox 2025-05-14

PHP 개발에서 출력 버퍼링은 매우 중요하지만 종종 간과되는 기능입니다. 두 가지 함수 OB_LIST_HANDLERS ()OB_GET_CONTENTS () 를 합리적으로 사용함으로써 버퍼 컨텐츠를보다 신중하게 제어 할 수 있으므로 성능 최적화, 디버깅, 컨텐츠 필터링 등에 큰 역할을 할 수 있습니다.

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

출력 버퍼링은 먼저 스크립트에 의해 생성 된 출력을 브라우저로 직접 전송하는 대신 버퍼에 스크립트에 저장하는 PHP를 나타냅니다. 이런 식으로 컨텐츠가 출력을 수정, 압축 또는 지연하는 등의 출력 전에 컨텐츠를 처리 할 수 ​​있습니다.

출력 버퍼링과 관련된 일반적인 기능에는 다음이 포함됩니다.

OB_LIST_HANDLERS () 함수 소개

OB_LIST_HANDLERS ()는 현재 출력 버퍼 핸들러를 사용하는 모든 배열 목록을 반환하는 데 사용됩니다. 일반적으로 복잡한 애플리케이션에서 출력 스택의 상태를 디버깅하거나 확인하는 데 사용됩니다.

예:

 <?php
ob_start();
echo "방문에 오신 것을 환영합니다:https://gitbox.net";

print_r(ob_list_handlers());

ob_end_flush();
?>

출력은 다음과 유사 할 수 있습니다.

 Array
(
    [0] => default output handler
)

이는 현재 버퍼가 기본 출력 핸들러를 사용하고 있음을 나타냅니다.

OB_GET_CONTENTS () 함수 소개

OB_GET_CONTENTS ()는 현재 버퍼의 내용을 반환하지만 버퍼를 지우지 않습니다. 일반적으로 출력 데이터를 읽고, 처리 또는 보관하는 데 사용됩니다.

예:

 <?php
ob_start();
echo "<p>환영 <a href='https://gitbox.net'>GitBox</a>!</p>";

$content = ob_get_contents();
echo "<!-- 페이지 콘텐츠 길이:" . strlen($content) . " -->";

ob_end_flush();
?>

이 예에서는 출력 길이에 대한 주석 정보를 페이지에 삽입합니다.

OB_LIST_HANDLERS ()OB_GET_CONTENTS ()를 조합하여 사용하십시오

이 두 기능을 함께 사용하면 현재 버퍼 상태를 기반으로 동적 처리 페이지 출력과 같은 출력을보다 유연하게 제어하거나 복잡한 중첩 버퍼의 동작을 디버깅 할 수 있습니다.

Complete example:

 <?php
ob_start();

// 페이지 출력 시뮬레이션
echo "<h1>GitBox - 전문 코드 호스팅 서비스</h1>";
echo "<p>자세한 내용은 방문하십시오 <a href='https://gitbox.net/docs'>문서 센터</a>。</p>";

// 현재 버퍼 프로세서를보십시오
$handlers = ob_list_handlers();
echo "<pre>현재 버퍼 프로세서: " . print_r($handlers, true) . "</pre>";

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

// 간단한 출력 압축(여분의 공간과 선 파손을 제거하십시오)
$optimizedContent = preg_replace('/\s+/', ' ', $pageContent);

// 버퍼링을 제거하고 최적화 된 컨텐츠를 다시 출력하십시오
ob_clean();
echo $optimizedContent;

ob_end_flush();
?>

분석:

  1. 버퍼링 및 출력 컨텐츠를 시작하십시오.

  2. OB_LIST_HANDLERS ()를 사용하여 현재 버퍼링 상황을보십시오.

  3. OB_GET_CONTENTS ()를 사용하여 얻으십시오