@Wrikken이 말한 것을 명심하십시오. 이것은 권장하지 않습니다.
나는 생각하고 있었고, 당신이하는 모든 일이 옳은 것처럼 보였습니다. 귀하의 설정을 복사하고 시도했습니다. 나는 똑같은 문제에 직면했다. 커맨드 라인에서 스크립트를 실행했습니다.
그런 다음 마지막 테스트 Wireshark를 수행해야했습니다. 패킷의 첫 번째 몇 가지 다음에 그것은 서버가 모든 것을 올바르게 전송하고 있다는 것이 분명해 졌기 때문에 브라우저의 버퍼 여야했습니다.
그래서 루프 이전에 데이터를 보내려고했는데 어떻게 됐을까? 그것은 효과가있다! 내가보기 엔 당신이 다른 옵션을 조사하는 것이 좋습니다
<?php
ini_set('output_buffering','off');
ini_set('zlib.output_compression', 0);
echo str_repeat(" ", 1024), "\n";
for($i=0;$i<6;$i++) {
echo $i."<br />\n";
ob_flush();
flush();
sleep(1);
}
?>
난 당신이 생각하고있는 응용 프로그램에 대한 확실하지 않다, 그러나 이것은 분명히 좋은 생각이 아니다 : 여기
는 당신은 간다.
업데이트 : 긴 Google 검색 후 나는 대부분의 브라우저가 특정 수를 버퍼 페이지의 문자를 구성하는 방법 모른 채 this 및
브라우저가 올바르게 페이지를 렌더링 할 수 없기 때문에 this 발견 자바 스크립트를 실행하거나 페이지를 그리기 전 바이트 수
및
,451,515,
는 항상 HTML 문서보다 큰 1킬로바이트 (1024 바이트에 의해 사용되는 최대 버퍼 한계 인, 정확하게하기 위해, 가능한 한 빨리 문자 인코딩을 지정해야합니다, 이러한 지연을 방지하기 위해 테스트 한 브라우저 중 하나).
<?php
ini_set('output_buffering','off');
ini_set('zlib.output_compression', 0);
//echo str_repeat(" ", 1024), "\n";
header('Content-Type: text/html; charset=iso-8859-1');
//Note that it shoudn't matter which charset you send
for($i=0;$i<6;$i++) {
echo $i."<br />\n";
ob_flush();
flush();
sleep(1);
}
?>
그래서 왜 첫 번째 서버가 아닌 두 번째로 작업 한 (그리고 일) :
그래서 나는 버퍼를 채우는 첫번째 대신 캐릭터 세트를 보내려고?
대부분의 경우 첫 번째 서버가 헤더가있는 문자 세트를 보내고 두 번째 서버는 그렇지 않은 것 같습니다. 귀하의 경우에는
그러나, 나는 다음은 내 문제에 대한 해결책을 발견
<?php
ini_set('output_buffering','off');
ini_set('zlib.output_compression', 0);
//Plain text MIME type since you'll use for logging purposes
//and if you run it from CLI, you can ignore the whole header line
header('Content-Type: text/plain; charset=iso-8859-1');
for($i=0;$i<6;$i++) {
//No need to echo <br /> once you'll run it from CLI
echo $i."\n";
ob_flush();
flush();
sleep(1);
}
?>
웹 서버가 버퍼링 할 수 있습니다. 브라우저는 버퍼링 할 수 있습니다 (MSIE는 출력량이 일정 할 때까지 유명하지 않습니다), 서버 홉은 버퍼링 할 수 있습니다. HTTP/HTML 페이지는 ' 달리기 콘솔 '을 좋아하지만 많은 사람들이 좋아할 것입니다. – Wrikken
얼마 전 나는 같은 문제에 부딪혔다. 나는 전체 논리를 재검토했다. 나는 PHP에서'text/plain' 타입으로 "동적 인"데이터를 얻고 Javascript로 멋진 HTMLy를 처리하는 결과를 가져 왔습니다. 다시 말해, 이것을 코드'header ('Content-type : text/plain')의 시작 부분에 넣으십시오. – Adi
내 상사가 나에게 말하기 위해 들어 와서 미안합니다. 그 헤더를 설정하지 않았다면 – Kris