소개
PHP 스크립트에 출력이 있는 경우 출력 제어 함수는 이를 사용하여 출력을 제어할 수 있습니다. 이는 특히 스크립트가 데이터 출력을 시작한 후 브라우저에 http 헤더를 보내는 등 다양한 상황에서 유용합니다. 출력 제어 함수는 header() 또는 setcookie()에서 전송된 파일 헤더 정보에는 영향을 미치지 않으며 echo 및 PHP 코드 블록과 같은 함수 간의 데이터에만 영향을 미칩니다.
참고:
이전 버전의 결함으로 인해 PHP4.1.x(4.2.x, 4.3.x)에서 업그레이드하는 경우 php.ini의 implicit_flush가 OFF인지 확인해야 합니다. 그렇지 않으면 ob_start()를 사용한 모든 출력이 출력에서 숨겨집니다.
기본 사용법
<?php ob_start(); echo "Hello\n"; setcookie("cookiename", "cookiedata"); ob_end_flush(); ?>
위의 예에서 echo 함수의 출력은 ob_end_flush()가 호출될 때까지 출력 버퍼에 저장됩니다. 동시에 setcookie() 호출도 오류 없이 성공적으로 쿠키를 저장합니다. (일반적인 상황에서는 데이터가 브라우저로 전송된 후에는 http 헤더 정보를 더 이상 전송할 수 없습니다.)
출력 제어 기능
flush — 출력 버퍼 새로 고침
ob_clean — 출력 버퍼 지우기(삭제)
ob_end_clean — 버퍼 지우기(삭제) 및 출력 버퍼 닫기
ob_end_flush — 출력 버퍼의 내용을 플러시(전송)하고 버퍼 닫기
ob_flush — 출력 버퍼의 내용을 플러시(전송)합니다.
ob_get_clean — 현재 버퍼의 내용을 가져오고 현재 출력 버퍼를 삭제합니다.
ob_get_contents — 출력 버퍼의 내용을 반환합니다.
ob_get_flush — 버퍼 내용을 플러시(전송)하고, 해당 내용을 문자열로 반환하고, 출력 버퍼를 닫습니다.
ob_get_length — 출력 버퍼 내용의 길이를 반환합니다.
ob_get_level — 출력 버퍼 메커니즘의 중첩 수준을 반환합니다.
ob_get_status — 모든 출력 버퍼의 상태를 가져옵니다.
ob_gzhandler — 출력 버퍼의 내용을 압축하기 위해 ob_start에서 사용되는 콜백 함수입니다.
ob_implicit_flush — 절대 플러시를 켜거나 끕니다.
ob_list_handlers — 사용 중인 모든 출력 핸들러를 나열합니다.
ob_start — 출력 제어 버퍼 열기
output_add_rewrite_var — URL 재작성기 값 추가 (URL 재작성기 값 추가)
output_reset_rewrite_vars — URL 재작성기 값 재설정 ( 재설정 URL 재작성기 값)