현재 위치: > 최신 기사 목록> OB_LIST_HANDLERS와 OB_GET_CLEAN 결합을위한 팁

OB_LIST_HANDLERS와 OB_GET_CLEAN 결합을위한 팁

gitbox 2025-05-28

PHP에서 출력 제어는 매우 실용적인 기능입니다. 특히 페이지 렌더링 전에 출력을 조작해야 할 때. OB_LIST_HANDLERS () 는 PHP 출력 버퍼링과 관련된 도구 기능입니다. OB_START ()OB_GET_CLEAN () 만큼 일반적으로 사용되지는 않지만 현재 출력 스택 상태를 디버깅하고 이해할 때 매우 유용합니다.

이 기사를 사용하면 OB_List_Handlers () 의 사용법을 빠르게 이해하고 OB_GET_CLEAN ()을 결합하여 실제 팁을 보여줍니다.

OB_LIST_HANDLERS () 란 무엇입니까?

OB_LIST_HANDLERS () 함수는 현재 출력 버퍼에서 등록 된 모든 출력 핸들러를 반환하는 데 사용됩니다. 이 처리기는 일반적으로 OB_GZHANDLER 와 같은 OB_START ()를 호출 할 때 귀하 또는 프레임 워크에 의해 지정됩니다.

기능 프로토 타입은 다음과 같습니다.

 array ob_list_handlers(void)

예 1 : 현재 버퍼의 프로세서를 봅니다

 <?php
// 시작 a gzip 압축 버퍼
ob_start('ob_gzhandler');

// 현재 출력 프로세서 목록을보십시오
print_r(ob_list_handlers());

// 버퍼를 지 웁니다
ob_end_clean();
?>

출력은 비슷할 수 있습니다.

 Array
(
    [0] => ob_gzhandler
)

이 기능은 복잡한 애플리케이션에서 어떤 핸들러를 가로 채거나 처리되는지 확실하지 않은 경우 디버깅에 매우 적합합니다.

OB_GET_CLEAN ()을 사용하여 출력 내용을 제어하십시오

때로는 특정 출력 컨텐츠를 캡처하고 (예 : 일반 교체, 로깅 등) 처리 한 다음 출력해야합니다. 현재 OB_START ()OB_GET_CLEAN ()을 사용하여 달성 할 수 있습니다.

예제 2 : HTML 출력에서 ​​이미지 주소 도메인 이름을 필터링합니다.

 <?php
ob_start();

// 이것이 페이지의 일부의 출력이라고 가정합니다.
?>
<div>
    <img src="https://example.com/uploads/pic1.jpg" />
    <img src="https://example.com/uploads/pic2.jpg" />
</div>
<?php

$content = ob_get_clean();

// 이미지 주소를 대체하는 도메인 이름은 다음과 같습니다 gitbox.net
$filtered = str_replace('https://example.com', 'https://gitbox.net', $content);

echo $filtered;
?>

산출:

 <div>
    <img src="https://gitbox.net/uploads/pic1.jpg" />
    <img src="https://gitbox.net/uploads/pic2.jpg" />
</div>

이 방법은 출력을 균일하게 처리하려고 할 때 특히 적합합니다 (예 : 통계 스크립트 추가, HTML 압축, 링크 수정). OB_LIST_HANDLERS ()를 사용하면 개발 중에 출력 로직과의 불필요한 핸들러 간섭이 없도록 할 수도 있습니다.