현재 위치: > 최신 기사 목록> OB_LIST_HANDLERS 및 OB_CLEAN의 사용 사례

OB_LIST_HANDLERS 및 OB_CLEAN의 사용 사례

gitbox 2025-05-20

PHP 프로그래밍에서 출력 버퍼는 매우 강력한 기능입니다. 출력 버퍼를 사용하면 출력 컨텐츠를 일시적으로 캡처하거나 출력 전에 작업을 수행하거나 수정할 수 있습니다. PHP는 OB_LIST_HANDLERS ()OB_CLEAN () 과 같은 기능을 제공하여 출력을보다 신중하게 제어 할 수 있도록 도와줍니다. 이 기사에서는이 두 기능을 사용하여 출력 제어를 조합하여 실제 응용 프로그램의 예를 제시하는 방법을 설명합니다.

출력 버퍼 개요

출력 버퍼를 사용하면 페이지 출력을 생성하기 전에 제어 할 수 있습니다. 기본적으로 PHP는 스크립트의 출력을 브라우저로 직접 보내지 만 출력 버퍼가 켜지면 출력 내용이 먼저 버퍼에 저장됩니다. 컨텐츠를 출력 할 때와 일부 기능을 통해 버퍼의 내용을 지울지 제어 할 수 있습니다.

OB_LIST_HANDLERS ()OB_CLEAN () 은 출력 버퍼를 처리하는 일반적인 기능이며, 현재 활성화 된 출력 버퍼 처리기를 나열하고 출력 버퍼의 내용을 각각 지우는 데 사용됩니다.

OB_LIST_HANDLERS 기능

OB_LIST_HANDLERS () 함수는 모든 현재 출력 버퍼 처리기를 나열하는 데 사용됩니다. 현재 출력 버퍼 스택에 모든 핸들러의 이름이 포함 된 배열을 반환합니다. 이 기능을 호출하여 현재 활성 출력 버퍼 핸들러가 있는지 확인할 수 있습니다.

문법:

 array ob_list_handlers ( void )

반품 값 :

모든 현재 출력 버퍼 핸들러의 이름을 반환합니다. 핸들러가 활성화되지 않으면 빈 배열이 반환됩니다.

예:

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

// 사용자 정의 버퍼 핸들러를 추가하십시오
function custom_output_handler($buffer) {
    return strtoupper($buffer); // 출력을 대문자로 변환합니다
}
ob_start("custom_output_handler");

// 일부 내용을 출력하십시오
echo "hello world";

// 현재 출력 버퍼 핸들러를 나열하십시오
$handlers = ob_list_handlers();
print_r($handlers);

// 버퍼를 청소하고 끝을 청소하십시오
ob_end_clean();
?>

이 예에서는 먼저 OB_START () 를 통해 출력 버퍼를 활성화합니다. 다음으로 OB_START ()를 사용하여 사용자 정의 버퍼 핸들러 Custom_output_handler 를 버퍼에 추가합니다. 그런 다음 현재 버퍼의 핸들러 이름은 OB_LIST_HANDLERS () 를 통해 나열되며 반환 된 배열에는 custom_output_handler가 포함됩니다.

OB_CLEAN 기능

OB_CLEAN () 함수는 출력 버퍼의 내용을 지우는 데 사용되지만 출력 버퍼를 닫지 않습니다. 버퍼가 제거 되더라도 출력 버퍼가 여전히 켜져 있으며이를 사용하여 후속 출력을 캡처 할 수 있습니다.

문법:

 bool ob_clean ( void )

반품 값 :

성공시 사실을 반환하고 버퍼가 비어 있으면 False를 반환합니다.

예:

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

// 일부 내용을 출력하십시오
echo "This is some content.";

// 버퍼를 지 웁니다
ob_clean();

// 콘텐츠를 다시 출력하십시오
echo "This is the new content.";

// 출력 버퍼의 내용
$content = ob_get_contents();
echo $content;  // 산출:This is the new content.

ob_end_clean();
?>

이 예에서는 먼저 일부 컨텐츠를 출력 한 다음 OB_CLEAN ()을 통해 버퍼를 지 웁니다. 버퍼가 지워 지더라도 버퍼에 새 컨텐츠를 계속 추가하고 마지막으로 새로운 컨텐츠를 출력 할 수 있습니다.

OB_CLEAN ()와 함께 OB_LIST_HANDLERS () 를 사용하십시오.

이 두 기능은보다 세분화 된 출력 제어를 달성하기 위해 조합하여 사용될 수 있습니다. 예를 들어, 출력 전에 현재 버퍼의 핸들러를 확인할 수 있으며 필요한 경우 버퍼를 지우고 새 핸들러를 추가 할 수 있습니다.

예:

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

// 일부 내용을 출력하십시오
echo "Initial content";

// 사용ob_list_handlers()현재 버퍼 핸들러를 확인하십시오
$handlers = ob_list_handlers();
print_r($handlers);

// 현재 버퍼에 핸들러가있는 경우,버퍼를 지 웁니다
if (!empty($handlers)) {
    ob_clean();
}

// 새 버퍼 핸들러를 추가하십시오
function new_output_handler($buffer) {
    return strtolower($buffer); // 将산출转换为小写
}
ob_start("new_output_handler");

// 산출新的内容
echo "New content";

// 获取缓冲区内容并산출
$content = ob_get_contents();
echo $content;  // 산출:new content

ob_end_clean();
?>

이 예에서는 먼저 일부 콘텐츠를 출력 한 다음 OB_LIST_HANDLERS () 를 통해 현재 출력 버퍼 핸들러를 확인합니다. 핸들러가있는 경우 OB_CLEAN ()을 사용하여 버퍼를 지우고 새 버퍼 핸들러를 추가하여 컨텐츠를 소문자로 변환합니다.

요약

OB_LIST_HANDLERS ()OB_CLEAN () 함수를 통해 PHP 개발자는 출력 버퍼의 잘 제어 할 수 있습니다. 현재 핸들러를 나열하여 버퍼를 지워야하는지 확인하고 출력 컨텐츠를 변경하는 데 필요할 때 새 핸들러를 추가 할 수 있습니다. 이는 웹 페이지 컨텐츠를 동적으로 생성하고 수정하는 데 큰 유연성을 제공합니다.

이 기사가 출력 제어를 위해 PHP에서 OB_LIST_HANDLERS ()OB_CLEAN ()을 사용하는 방법을 이해하는 데 도움이되기를 바랍니다. 궁금한 점이 있거나 더 알고 싶다면 언제든지 저에게 연락하십시오.