>  기사  >  백엔드 개발  >  PHP 출력 버퍼 제어

PHP 출력 버퍼 제어

伊谢尔伦
伊谢尔伦원래의
2016-11-22 09:51:271025검색

소개

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 재작성기 값)


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