>  기사  >  백엔드 개발  >  PHP 플러시가 유효하지 않은 경우 IIS7에서 PHP 실시간 출력 방법에 대한 자세한 설명

PHP 플러시가 유효하지 않은 경우 IIS7에서 PHP 실시간 출력 방법에 대한 자세한 설명

黄舟
黄舟원래의
2017-03-29 10:03:131104검색

이 글에서는 php를 주로 소개합니다. flush는 유효하지 않으며 IIS7에서 php의 실시간 출력 방법이 필요한 친구들은

을 참고하세요. 작업 중에 작업을 기록하고 브라우저에 실시간으로 표시하려면 플러시()를 사용하여 버퍼에 있는 내용을 브라우저로 보냅니다. 하지만 iis7에서는 fastcgi 모드로 구성된 PHP를 구현할 수 없으며, 결과가 항상 함께 표시됩니다.

for ($i=10; $i>0; $i--)
{
  echo $i.&#39;<br />&#39;;
  @ob_flush();
  flush();
  sleep(1);
}

위 코드는 IIS 기본 설정에서 결과를 점진적으로 표시할 수 없습니다. 해결 방법은 다음과 같습니다.

C:WindowsSystem32inetsrvconfigapplicationHost.config 파일을 엽니다. 시스템이 64비트 시스템인 경우 이 파일을 64비트 편집 소프트웨어로 열어야 합니다. 32비트 소프트웨어에서는 파일이 존재하지 않는다는 메시지가 표시됩니다. 시스템과 함께 제공되는 메모장으로 파일을 열면 됩니다. 다음 단락을 찾아 빨간색 코드를 추가합니다. 즉, responseBufferLimit="0"을 PHP 핸들러에 추가합니다.

코드는 다음과 같습니다.

<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에서 output_buffering = Off로 설정하세요.

마지막 사항은 매우 중요합니다. 브라우저에 따라 결과가 달라집니다. IE에서는 문제가 없을 것입니다. Chrome을 사용하는 경우 각 에코 내용에 html이 포함되어 있어야 하며 그렇지 않으면 작동하지 않습니다. 또한 에코 내용이 너무 짧으면 이 효과를 코드보다 먼저 출력할 수 없습니다. echo str_pad(' ', 1050); Chrome은 이 효과를 얻으려면 먼저 1000자 이상을 출력해야 하는 것 같습니다. 작동하지 않으면 더 시도해 보세요.

위 내용은 PHP 플러시가 유효하지 않은 경우 IIS7에서 PHP 실시간 출력 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.