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

*文
リリース: 2023-03-18 20:28:01
オリジナル
1752 人が閲覧しました

この記事では主に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 サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!