PHP 매뉴얼
이전 |  | 다음

# ob_start

(PHP 4 , PHP 5)

ob_start -- 출력 버퍼링을 켭니다.

## 설명

bool ob_start ( [callback output_callback])

출력 버퍼링을 켭니다. 출력 버퍼링을 활성화하면, (헤더를 제외한) 스크립트의 모든 출력을 내부 버퍼에 저장하고, 실제로 전송하지 않습니다.

이 내부 버퍼의 내용은 ob_get_contents()를 사용하여 문자열 변수로 복사할 수 있습니다. 내부 버퍼에 저장한 내용을 출력하려면, ob_end_flush()를 사용하십시오. 반대로 ob_end_clean()은 버퍼 내용을 버립니다.

선택적인 `output_callback` 함수를 지정할 수 있습니다. 이 함수는 문자열을 인자로 받고, 문자열을 반환해야 합니다. 이 함수는 ob_end_flush()를 호출하거나, 요청이 끝날 때 출력 버퍼가 브라우저로 전송할 때 호출됩니다. `output_callback`은 출력 버퍼의 모든 내용을 인자로 받아서 브라우저로 전송할 새 출력 버퍼를 결과로 반환할 것이 기대됩니다. `output_callback`가 호출할 수 있는 함수가 아니라면, 이 함수는 `FALSE`를 반환합니다.

> 참고: PHP 4.0.4에서, ob_gzhandler()가 웹 페이지 압축을 지원하는 웹 브라우저에 gz-인코드 데이터를 전송하기 위한 방법으로 생겼습니다. ob_gzhandler()는 브라우저가 허용하는 내용 인코딩 형태를 확인하고 그에 따라 출력합니다.

> 참고: PHP 4.3.2 이전에는 실행할 수 없는 `output_callback`을 지정해도 `FALSE`를 반환하지 않았습니다.

출력 버퍼는 쌓여질 수 있기에, 다른 ob_start()가 활성화 중이라도 ob_start()를 호출할 수 있습니다. 단지 정확한 횟수의 ob_end_flush()를 호출하도록 하십시오. 다중 출력 콜백 함수를 활성화하면, 출력은 감싸진 순서대로 빠져나가면서 변경됩니다.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush(), ob_start()는 콜백 함수에서 호출할 수 없습니다. 이들을 콜백 함수에서 호출할 시의 행동은 정의되어 있지 않습니다. 버퍼의 내용을 지우려면 콜백 함수에서 ""(빈 문자열)을 반환하십시오.

예 1. 사용자 정의 콜백 함수 예제

`<?php function callback($buffer) { // 모든 apples를 oranges로 치환합니다. return (str_replace("apples", "oranges", $buffer)); } ob_start("callback"); ?> <html> <body> <p>It's like comparing apples to oranges. </body> </html> <?php ob_end_flush(); ?>`

출력은:

    <html>
    <body>
    <p>It's like comparing oranges to oranges.
    </body>
    </html>

참고: ob_get_contents(), ob_end_flush(), ob_end_clean(), ob_implicit_flush(), ob_gzhandler().

이전 | 처음으로 | 다음
ob_list_handlers | 위로 | output_add_rewrite_var