당신이 다시 데이터를 플러시 시도 플러시() 함수를 사용할 수있다 브라우저. php.net에서
설명 :
이 (CGI, 웹 서버 등)를 사용하고 어떤 백엔드 PHP 쓰기 PHP의 버퍼와 플래시합니다. 이것은 몇 가지주의 사항이있는 현재의 모든 출력을 브라우저로 보냅니다.
flush()는 웹 서버의 버퍼링 체계를 재정의 할 수 없으며 브라우저 의 클라이언트 측 버퍼링에 영향을주지 않습니다. 또한 PHP의 사용자 공간 출력 버퍼링 메커니즘에도 영향을 미치지 않습니다. 즉, ob 출력 버퍼를 사용하는 경우 ob_flush()와 flush()를 호출하여 플러시해야합니다. 크롬 31.0.1650.57 (리눅스)에서 테스트 아래
샘플 코드, 사파리 (6.0.4) (OSX) :
참고 : 플러시 출력을 표시할지 여부는 (브라우저에 달려있다 대개 응답의 데이터 양에 따라 다름). 예를 들어 Safari (6.0.4)는 데이터를 브라우저에 출력하기 전에 512 바이트의 데이터를 원합니다. 출력의 시작 부분에 512자를 채우는 것과 같은 방법으로이 문제를 해결할 수 있습니다.
<?php
header('Content-type: text/html; charset=utf-8');
echo str_repeat(" ",512); //pad the buffer with data (in case browser needs it)
while (true){
//write go to the browser every 2 seconds.. forever
echo "go...<br/>";
ob_flush();
flush();
sleep(2);
}
?>
대한 추가 정보를 원하시면 여기 http://us1.php.net/manual/en/function.flush.php
번호 PHP는 HTML을 렌더링하기 전에 모든 것을 계산한다. PHP에서 동적으로 그런 것을 만들 수있는 방법은 없습니다. –
@YUNOWORK 사실이 아닙니다. PHP는 아무 것도 기다릴 필요없이 그냥 값을 출력합니다. * 웹 서버 *는 일반적으로 응답을 버퍼링합니다. – deceze
OP : HTTP는 _synchronous_이며 모든 출력은 스크립트가 실행 된 후에 만 클라이언트로 전송됩니다. CLI 모드와 전혀 다르다. –