php flush 가 잘못 되 었 습 니 다.IIS 7 에서 php 를 실시 간 으로 출력 하 는 방법 입 니 다.

1461 단어 phpflush 무효
비교적 시간 이 걸 리 는 작업 에서 브 라 우 저 에 작업 기록 을 실시 간 으로 표시 하려 면 flush()를 사용 하여 버퍼 의 내용 을 브 라 우 저 에 보 냅 니 다.그러나 iis 7 에서 fastcgi 모드 로 설 정 된 php 는 아무리 해도 실현 되 지 않 고 결 과 는 항상 함께 표 시 됩 니 다.

for ($i=10; $i>0; $i--)
{
  echo $i.'<br />';
  @ob_flush();
  flush();
  sleep(1);
}
위의 코드 는 IIS 의 기본 설정 에서 결 과 를 점차적으로 표시 할 수 없습니다.해결 방법 은 다음 과 같다.
파일 C:\Windows\System 32\inetsrv\config\applicationHost.config 를 엽 니 다.64 비트 시스템 이 라면 이 파일 은 64 비트 편집 소프트웨어 로 열 어야 합 니 다.32 비트 소프트웨어 를 열 면 파일 이 존재 하지 않 는 다 는 것 을 알 립 니 다.시스템 에 있 는 notepad 메모 장 으로 열 면 됩 니 다.아래 단락 을 찾 으 면 빨간색 코드 를 넣 으 면 됩 니 다.즉,phop 이라는 handler 에 response BufferLimit="0"을 추가 하면 됩 니 다.

<handlers accessPolicy="Read, Script">
<add name="PHP_via_FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="E:\PHP\php-cgi.exe" resourceType="Either" responseBufferLimit="0" />
지금 한번 해 보 세 요.안 되면 php.ini 에 있 는 outputbuffering = Off。
마지막 으로 중요 한 것 은 브 라 우 저 마다 다른 결 과 를 사용 하 는 것 이다.IE 에 서 는 문제 가 없 을 것 입 니 다.chrome 을 사용 하 는 것 이 라면 모든 echo 에서 나 온 내용 은 html 를 가 져 야 합 니 다.그렇지 않 으 면 안 됩 니 다.그리고 echo 의 내용 이 너무 짧 아 도 이 효 과 를 실현 하지 못 할 경우 코드 전에 빈 칸 을 출력 할 수 있 습 니 다.예 를 들 어 echo strpad(' ', 1050); chrome 은 1000 여 개의 문 자 를 먼저 출력 해 야 이 효과 가 있 을 것 같 습 니 다.안 되면 직접 많이 시도 해 보 세 요.

좋은 웹페이지 즐겨찾기