>백엔드 개발 >PHP 문제 >PHP에서 ob_start를 닫는 방법

PHP에서 ob_start를 닫는 방법

藏色散人
藏色散人원래의
2021-11-19 10:58:122011검색

php ob_start는 출력 제어 버퍼를 여는 데 사용됩니다. ob_start를 닫으려면 ob_end_clean() 함수를 사용하여 버퍼의 내용을 자동으로 삭제할 수 있습니다.

PHP에서 ob_start를 닫는 방법

이 기사의 운영 환경: windows7 시스템, PHP7.1 버전, DELL G3 컴퓨터

PHP에서 ob_start를 닫는 방법은 무엇입니까?

ob_start — 출력 제어 버퍼 열기

설명

ob_start(callable $output_callback = null, int $chunk_size = 0, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS): bool

이 함수는 출력 버퍼를 엽니다. 출력 버퍼링이 활성화되면 스크립트는 콘텐츠(http 헤더 제외)를 출력하지 않고 대신 출력할 콘텐츠를 내부 버퍼에 저장합니다.

내부 버퍼의 내용을 사용할 수 있습니다. ob_get_contents() 函数复制到一个字符串变量中。 想要输出存储在内部缓冲区中的内容,可以使用 ob_end_flush() 函数。另外, 使用 ob_end_clean() 기능은 버퍼의 내용을 자동으로 삭제합니다.

경고

일부 웹 서버(예: Apache)는 콜백 함수가 호출될 때 스크립트의 작업 디렉터리를 변경합니다. 콜백 함수에서 이를 다시 변경할 수 있습니다(예: chdir(dirname($_SERVER['SCRIPT_FILENAME'])) ).

출력 버퍼는 스택 가능합니다. 즉, 하나의 ob_start()가 활성화되면 다른 ob_start()를 호출할 수 있습니다. ob_end_flush()를 올바른 횟수만큼 호출했는지 확인하세요. 여러 출력 콜백이 활성화된 경우 출력은 항상 중첩된 순서로 필터링됩니다.

Parameters

output_callback

선택적 매개변수 Output_callback 함수를 지정할 수 있습니다. 이 함수는 문자열을 인수로 사용하고 문자열을 반환합니다. 이 함수는 출력 버퍼가 플러시(방출)되거나 정리될 때(ob_flush(), ob_clean() 또는 유사한 함수) 호출이 끝날 때 출력 버퍼 내용이 브라우저에 플러시될 때 호출됩니다. output_callback이 호출되면 출력 버퍼의 내용을 매개변수로 수신하고 결과적으로 새로 반환된 출력 버퍼의 내용이 브라우저로 전송될 것으로 예상됩니다. 이 output_callback이 호출 가능한 함수가 아닌 경우 이 함수는 false를 반환합니다.

다음은 콜백 서명입니다.

handler(string $buffer, int $phase = ?): string

buffer

출력 버퍼의 내용입니다.

phase

비트 마스크 PHP_OUTPUT_HANDLER_* 상수.

output_callback이 false를 반환하면 원래 입력 콘텐츠가 브라우저로 직접 전송됩니다.

이 매개변수 output_callback은 null 값을 직접 제공하여 피할 수 있습니다.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() 및 ob_start()는 콜백 함수에서 호출할 수 없습니다. 콜백 함수에서 호출되는 경우 결과 동작은 지정되지 않습니다. 버퍼의 내용을 삭제하려면 콜백 함수에서 ""(빈 문자열)을 반환합니다. 콜백 함수에서는 print_r($expression, true) 또는 하이라이트_file($filename, true)과 같은 출력 버퍼링 함수를 사용할 수도 없습니다.

注意:
ob_gzhandler() function exists to facilitate sending gz-encoded data to web browsers that support compressed web pages. ob_gzhandler() determines what type of content encoding the browser will accept and will return its output accordingly.

chunk_size

선택적 매개변수인 Chunk_size가 할당되면 버퍼 길이가 Chunk_size와 같거나 초과되는 출력 작업 후에 버퍼가 플러시됩니다. 기본값 0은 함수가 마지막에만 호출된다는 의미입니다.

PHP 5.4.0 이전에는 1이 Chunk_size를 4096바이트로 설정하는 특수한 경우의 값이었습니다.

flags

flags 매개변수는 버퍼 작업을 제어하는 ​​데 사용되는 마스크 비트를 나타냅니다. 기본값은 출력 버퍼를 정리하고 플러시하고 제거하는 것입니다. 이는 PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE 또는 PHP_OUTPUT_HANDLER_STDFLAGS를 통해 명시적으로 설정할 수 있습니다.

반환 값

성공 시 true를 반환하고, 실패 시 false를 반환합니다.

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP에서 ob_start를 닫는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.