2012-04-27 2 views
0

문자열을 일정 횟수 반복하여 WAMP 서버에서 간단한 while 루프를 구현하려고합니다. 그러나 WAMP PHP 설정에서 출력 버퍼링을 해제하더라도 전체 출력이 즉시 발생합니다.WAMP 및 flush()

초 간격으로 한 번에 한 버전

$i = 0; 
while ($i < 5) 
{ 
print ("This is an example of a while loop.<br/>"); 
flush(); 
sleep(1); 
$i++; 

} 

버전 2

$i = 0; 
while ($i < 5) 
{ 
print ("This is an example of a while loop.<br/>"); 
ob_start(); 
ob_flush(); 
flush(); 
sleep(1); 
$i++; 

} 
어느 버전 스트링을 I 즉, 의도하고있는 방법을 출력

번. 어떤 도움이라도 대단히 감사합니다.

+0

을 렌더링 할 때 브라우저에 달려 ... – Ryan

+0

도 읽고 여기 http://www.php.net/manual/en/function.flush.php – Sampson

+0

을 설명을 읽고 @dmubu : HTTP를 : //stackoverflow.com/a/14922225/1454514 –

답변

0

저는 항상 WAMP에 문제가있어 플러시 상태에 빠졌고 결국 WAMP에서 깨졌습니다. 그것은 내가 가지고있는 서버 설정에 상관없이, WAMP가 패키지화되는 방식에 대해 뭔가있어, 그냥 작동하지 않는 것 같습니다.

XAMPP를 사용하거나 자신의 서버를 설치하고 구성하는 것만으로도 효과를 볼 수 있습니다.

+0

php.ini에서 'output_buffering'을 해제 할 때까지 필사적이었습니다. 모든 것은 flush()와 잘 작동합니다. –

0

이 문제가 발생하여 다음 코드를 통합하여 해결할 수있었습니다.

// Necessary Settings and stuff for output buffering to work right 
apache_setenv('no-gzip', 1); 
ini_set('zlib.output_compression', 0); 
ini_set('implicit_flush', 1); 
ini_set('output_buffering', "off"); 

// Start a new output buffer and send some blank data to trick browsers 
ob_start(); 
echo str_repeat(" ", 4096); 

for ($i=0; $i < 10; $i++) { 
    echo "<div>Echo Something...</div>\n"; 

    // Call both ob_flush and flush functions 
    ob_flush(); 
    flush(); 
} 
0

저스틴의 해결 방법으로도 만들 수없는 사람들을 위해. wamp x64에서 테스트되었습니다.

// Necessary Settings and stuff for output buffering to work right 
apache_setenv('no-gzip', 1); 
ini_set('zlib.output_compression', 0); 
ini_set('implicit_flush', 1); 
ini_set('output_buffering', "off"); 

// Start a new output buffer and send some blank data to trick browsers 
ob_start(); 
echo str_repeat(" ", 4096); 
ob_end_flush(); //addition 
ob_flush(); 
flush(); 

for ($i=0; $i < 10; $i++) { 
    ob_start(); //addition 
    echo "<div>Echo Something...</div>\n"; 

    ob_end_flush(); //addition 
    ob_flush(); 
    flush(); 
}