2012-03-01 3 views
2

작동하기 위해 노력한 모든 작업에도 불구하고 작동하지 않는 것 같습니다. 여기 XAMPP에서 버퍼링되는 PHP 출력

내가 무슨 짓을했는지 전부 :

  1. output_buffering을 = 4096
  2. zlib.output_compression도 꺼짐
  3. ob_implicit_flush를 사용하여 시도 =();
  4. 을 사용하여 시도했습니다. ob_flush();
  5. 는 다음 1

에을 output_buffering을 설정 INI에서 버퍼 크기를 감소 내가 (1 초마다 라인이 기본적으로 출력) 작업을 얻기 위해 노력하고있어 코드는하지만 난 ' 15 초 후에 전체 출력을 얻는다. ob_implicit_flush와

() :

위한 ob_start를 사용하여와
<?php 
ob_implicit_flush(); 

for($i=0;$i<=15;$i++) 
{ 
    print($i."<BR />"); 
    sleep(1); 
} 

()ob_flush() 방법 :

<?php 
ob_start(); 
for($i=0;$i<=15;$i++) 
{ 
    print($i."<BR />"); 
    ob_flush(); 
} 

내가 놓친 거지 다른 PHP 설정이 있습니까 ? 도와주세요.

편집 :이 SO 문제의 OP하여 예제를 사용하여, 그것을 작동 : PHP buffer why \r\n

내가 버퍼 오버플로 문자열을 생성하는 str_repeat()를해야했다 것을 알 수있다. PHP 매뉴얼에서 언급 된 이유는 무엇입니까? 이게 바로 절차입니까?

+0

이 코드는 불완전한 것처럼 보입니다. 샘플의 컨텍스트에서 함수 집합'ob_' *에 대한 호출을 볼 수 없습니다. – Treffynnon

+0

죄송합니다. 지금 업데이트했습니다. –

답변

1

PHP는 요청에 대해 하나의 응답을 반환합니다. 해당 코드에서 sleep() 호출이있는 경우 전체 응답은 해당 호출을 기다립니다. print 사이에 1 초간 수면을하더라도 PHP는 브라우저에 응답을 청크로 전달하지 않습니다.

PHP를 대화 형 콘솔로 사용하는 경우 이는 예상대로 작동하고 작동해야합니다.

0

설명을 읽어 보면 이해할 수 있습니다.