PHP 개발에서 OB_FLUSH () 및 FLUSH ()는 출력 버퍼를 플러시하는 데 일반적으로 사용되는 두 가지 기능입니다. 기본적으로 PHP는 출력 컨텐츠를 메모리 버퍼에 먼저 저장하고 스크립트 실행이 완료되거나 수동으로 새로 고침 될 때까지 콘텐츠가 브라우저로 전송되지 않습니다.
OB_FLUSH ()의 기능은 출력 버퍼를 새로 고치고 버퍼의 내용을 즉시 브라우저로 보내는 것입니다. Flush ()도 유사한 기능을 구현할 수 있지만 일부 서버 환경에서는 새로 고침이 적용되도록 추가 작업이 필요할 수 있습니다.
OB_FLUSH ()는 주로 PHP의 출력 버퍼를 플러시하고 HTTP 헤더 및 HTML 컨텐츠를 포함한 모든 버퍼 컨텐츠를 전송하여 브라우저가 가능한 빨리 데이터를 수신 할 수 있도록합니다.
Flush () 함수는 현재 버퍼의 데이터를 브라우저로 전송하지만 HTTP 헤더 정보를 출력 할 책임이 없습니다. OB_FLUSH ()와 비교하여 Flush ()는 HTTP 헤더의 처리를 건너 뜁니다.
일반적으로 OB_FLUSH () 및 FLUSH ()를 사용하여 컨텐츠의 즉각적인 출력을 달성합니다. 그러나 일부 서버는 Flush ()가 적용되기 전에 먼저 버퍼를 닫으려면 OB_END_FLUSH ()가 필요할 수 있습니다.
다음 예제는 ob_flush () 및 flush ()를 사용하는 방법을 보여줍니다.
<?php
// 버퍼를 활성화하십시오
ob_start();
// 콘텐츠의 출력 부분
echo "Hello";
// 버퍼를 즉시 새로 고치고 브라우저로 전송하십시오
ob_flush();
flush();
// 나머지 콘텐츠 출력
echo "World";
// 버퍼를 닫습니다
ob_end_flush();
?>
코드에서 먼저 OB_START ()을 통해 출력 버퍼링을 켜고 "Hello"를 출력 한 다음 OB_FLUSH () 및 FLUSH ()를 사용하여 즉시 새로 고쳐서 "World"를 출력 한 다음 마지막으로 버퍼를 닫습니다. 이는 블록 출력을 달성하고 사용자 경험을 향상시킬 수 있습니다.
일부 서버 환경은 기본적으로 버퍼를 활성화하거나 비활성화 할 수 있습니다. 이 두 기능을 사용하는 경우 서버 구성이 즉시 새로 고침을 지원하는지 확인해야합니다. 필요한 경우 구성을 조정하거나 OB_END_FLUSH ()를 호출하십시오.
모든 브라우저가 버퍼의 실시간 새로 고침을 지원하는 것은 아니며, 때로는 버퍼가 새로 고침 되더라도 브라우저가 콘텐츠 표시를 지연시킵니다.
버퍼를 새로 고칠 때는 출력 순서에주의를 기울여야합니다. 출력 내용이 먼저 표시됩니다. OB_FLUSH ()가 새로 고침되도록 호출되면 새 컨텐츠는 이전 출력과 함께 계속됩니다.
OB_FLUSH () 및 flush ()는 출력 버퍼의 플러싱 동작을 제어하기위한 PHP의 중요한 기능입니다. 그것들을 올바르게 사용하면 더 부드러운 페이지로드 경험을 얻을 수 있지만 서버 구성 및 브라우저 기능과 함께 적용해야합니다.