>백엔드 개발 >PHP 튜토리얼 >ob_flush_php 팁을 사용할 때 PHP는 매초 원리 분석을 출력할 수 없습니다.

ob_flush_php 팁을 사용할 때 PHP는 매초 원리 분석을 출력할 수 없습니다.

WBOY
WBOY원래의
2016-05-16 20:14:40987검색

이 기사의 예에서는 ob_flush를 사용할 때 PHP가 매초 출력할 수 없다는 원칙을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

기능 구현:

브라우저는 매초마다 숫자를 출력합니다.

php.ini는 다음과 같이 구성됩니다:

버전 5.3

implicit_flush = 꺼짐
출력_버퍼링 = 꺼짐

기타: output_buffering이 켜져 있는지 확인하고 다음을 수행할 수 있습니다.

코드 복사 코드는 다음과 같습니다.
var_dump(ini_get('output_buffering'));

이 코드를 다시 살펴보겠습니다.

<&#63;php
  $i = 3;
  ob_start();
  while ($i--) {
    echo $i, "<br />";
    ob_flush();
    flush();
    sleep(1);
  }
  ob_end_clean();
&#63;>

그런데 왜 이 코드가 매초 출력될 수 없나요? ?

원인 분석:

Apache 작동 원리: 주소에 액세스(요청 보내기)하면 apache가 PHP를 시작한 다음 PHP 실행은 페이지 수준에서 이루어집니다. 즉, 실행 가능한 코드가 있는 경우: 실행 가능한 코드가 있는 경우 Apache에 전달됩니다. 모두 실행되고 Apache는 이를 브라우저에 던져 결과를 표시합니다

어떻게 달성할 수 있나요?

cli가 결과를 다른 방식으로 표시한다면 차이점은 무엇인가요?

리눅스 명령:

php5 테스트.php

아파치나 웹 서비스를 거치지 않고 PHP로 직접 구현할 수 있습니다.

<&#63;php
  $i = 3;
  while ($i--) {
    echo $i, "\n";
    sleep(1);
  }
  ob_end_clean();
&#63;>

이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

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