ホームページ  >  記事  >  バックエンド開発  >  IIS7 での PHP リアルタイム出力のフラッシュの無効な使用に対する解決策

IIS7 での PHP リアルタイム出力のフラッシュの無効な使用に対する解決策

*文
*文オリジナル
2017-12-29 18:06:111766ブラウズ

この記事では主にIIS7でphpフラッシュが無効になる方法と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 文字を超える文字を出力する必要があるようです。うまくいかない場合は、さらに試してください。関連する推奨事項:

PHPIISログ分析検索エンジンクローラーレコーディングプログラム_PHPインスタンス2008 php IIS は、uploadify を使用して大きなファイルをアップロードしますが、ソリューションをアップロードできません

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

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