) 나는 주기적으로 출력을하기 위해 sleep (n)을 반복했다.내 습관이 끝날 때까지 잠깐 (
그러나 루프를 실행할 때 의도 한 루프 지속 시간의 모든 초가 집합 적으로 발생하고 그 후에 모든 출력이 한꺼번에 쏟아져 나올 때까지 아무 일도 일어나지 않습니다.
도움말. 감사.
) 나는 주기적으로 출력을하기 위해 sleep (n)을 반복했다.내 습관이 끝날 때까지 잠깐 (
그러나 루프를 실행할 때 의도 한 루프 지속 시간의 모든 초가 집합 적으로 발생하고 그 후에 모든 출력이 한꺼번에 쏟아져 나올 때까지 아무 일도 일어나지 않습니다.
도움말. 감사.
각 출력 후에 출력 버퍼를 flush()해야 할 필요가 있습니까?
동의, 출력을 에코/인쇄 할 때마다 즉시 'flush()'를 호출하십시오. –
둘 다 감사합니다. 그 끝을 향한 또 다른 질문이 있습니다 (아래 참조하십시오) : – user225626
sleep() 대신 flush()를 사용해야하는 것처럼 들립니다.
... 아니면 둘을 함께? – Matchu
검토가 끝난 후에는이 두 개가 결합되어 있어야합니다. 사용자가 지연없이 각 반복마다 브라우저로 출력을 플러시하려고한다고 생각했습니다. 원래의 질문은 완전히 명확하지 않습니다. – simeonwillbanks
그 시도 :
ob_end_flush(); // just in case
while (1) {
echo 'wait for it<br/>'.PHP_EOL;
flush();
sleep (2);
}
mathroc, 고맙습니다. 하지만 내 공유 호스트는 "치명적인 오류 : 정의되지 않은 함수 호출 : ob_flush_end()"를 throw합니다. 이것은 무엇을 의미합니까? – user225626
그것은 내가 틀 렸음을 의미하며, 함수 이름은 ob_end_flush입니다. – Mathieu
아래 새 코멘트를 보시기 바랍니다. – user225626
아아이 사이트는 나를 mathroc의 최신에 댓글을 추가 두지 않을거야. 그래서 여기에 넣을 게요 :
그것은 나를 위해 작동하지 않았다. 그러나 다음은 정말 이상한입니다 : 내가 실수로 내가 뭘 찾았는지 앞에 붙어 웹에서 다른 수면 코드 우연히 :
<HTML>
<BODY>
$c=0;
while($c <$chunks){
$rand = rand(2000000, 6000000);
echo '<br> . . . sleeping for ' . round(($rand/1000000),2) . ' seconds . . . zzzzzzzzzzzzzz<br>';
flush();
usleep($rand);
$c++;
}
WHAT I'VE GOT BEGINS HERE:
<br />
<br />
This page is loading.<br />
<?php
for($i=0;$i<5;$i++){
flush(); sleep(2);
?>
Almost there...<br />
<?php
}
?>
<?php flush(); sleep(2); ?>
Done.<br />
</BODY>
</HTML>
... 지금은 코드의 낮은 블록은 잘 자고, 순차적으로 출력이 제대로 엇갈리게 처리됩니다 (10 초가 지나면 일괄 적으로 도착하는 대신).
내가 위에 무엇을하고 있는지 알지 못해 이상하게 보입니다. 아래 블록의 모든 내용이 올바르게 작동 할 것입니다. 삭제하면 차단 기능이 작동하지 않습니다. 즉, 출력이 누적되어 결국 끝에 대량으로 유출됩니다. 위 코드의 비트와 조각 만 제거하면, 내 것이 조금 앞으로 나아가고 싶지만 나머지는 괜찮게 출력됩니다.
위의 코드가 내 (후자의 블록)가해야 할 방식으로 작동하는지 또는 어떻게 후자 블록을 완전히 작동하게하는지, 또는 심지어 위의 사항을 만드는 방식으로 그것을 줄이는 방법에 대해 알지 못합니다 페이지에서 보이지 않는 코드는 후자의 블록이 정확하게 작동하도록 허용합니다.
(둘 다 윈도우 7 Caucho에 수지 PHP 5와 리눅스 아파치 CGI-BIN PHP 4 개 플랫폼에서 스크립트를 테스트했습니다. 동일한 결과.)
당신은 문제의 코드를 게시 할 수 있습니까? –
출력 버퍼링을 사용하고 있습니까? –
나는이 질문을 읽고 생각했다. 나 역시 불면증이다. 진지한 점은 어떤 코드가 도움이 될 수 있으므로 어떤 일이 벌어지는 지 확인할 수 있습니다. –