ホームページ >バックエンド開発 >PHPチュートリアル >PHPフラッシュが無効な場合のIIS7でのPHPリアルタイム出力方法の詳細説明

PHPフラッシュが無効な場合のIIS7でのPHPリアルタイム出力方法の詳細説明

黄舟
黄舟オリジナル
2017-03-29 10:03:131188ブラウズ

この記事では主にphpを紹介しますflushinvalid、IIS7でのphpのリアルタイム出力方法です、必要な友人は参考にしてください

比較的時間のかかる操作で、操作と表示を記録したいブラウザ上でリアルタイムに実行する場合、flush() を使用してバッファ内のコンテンツをブラウザに送信します。しかし、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 ビット編集ソフトウェアで開く必要があることに注意してください。ファイルが存在しないことを示すメッセージが表示されます。持参したメモ帳を開くだけでシステムが自動的に使用されます。次の段落を見つけて赤いコードを追加します。つまり、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 を設定してください。

最後の点は非常に重要です。ブラウザーによっては結果も異なります。 Chrome を使用する場合は、各エコー コンテンツに HTML が含まれていなければ機能しません。また、エコー コンテンツが短すぎると、この効果をコードの前に出力することはできません。 echo str_pad(' ', 1050); のようなスペース。Chrome でこの効果を得るには、最初に 1000 文字を超える文字を出力する必要があるようです。うまくいかない場合は、さらに試してください。

以上がPHPフラッシュが無効な場合のIIS7でのPHPリアルタイム出力方法の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。