ホームページ > バックエンド開発 > PHPチュートリアル > 緊急のお願い: PHP によるクライアントへのリアルタイム出力に関する質問

緊急のお願い: PHP によるクライアントへのリアルタイム出力に関する質問

WBOY
リリース: 2016-06-13 13:37:52
オリジナル
665 人が閲覧しました

緊急要望:PHPがクライアントにリアルタイムにデータを出力する問題について
テストコードは以下の通りです。
ob_start();
for($i = 1; $i <= 100 ; $i ){
$sourceName = 'filetoupload' . $i;
$imageArray = array();
$message = "画像 $i がサーバーにアップロードされました";
echo $message;
flash();
ob_flush();
usleep(500000);
}
ob_end_flush();
?>
テスト結果は次のとおりです。
ローカル サーバーではスクリプトの実行と出力を同時に行うことができますが、イントラネット サーバーで実行すると、100 サイクルの実行後に出力されます。

希望する正しい結果:
ローカルと同様 サーバー上の実行結果は同じで、実行中に出力が表示されます。同じスクリプトをイントラネット サーバーで実行すると異なる結果が生じるのはなぜですか? それは php.ini の構成項目に関連しているのでしょうか? ? ? どの設定項目が関連していますか? ? ?助けていただければ幸いです、よろしくお願いします


-----解決策------ ------------
本当にお急ぎの場合は!方法を思いつきました!ページに値を渡すだけで、ループは使用しないでください。

PHP コード

$id=empty($_GET['id'])?1:intval($_GET['id']);
$sourceName = 'filetoupload' . $i;
$imageArray = 配列();
$message = "画像 $i がサーバーにアップロードされました";
$メッセージをエコー;
if ($id>=100){
出口();
}
$id;
$msg.="<META HTTP-EQUIV=更新 CONTENT=0;URL=?id=".$id.">";
$msg をエコー;
出口();
<br><font color="#e78608">------解決策---------</font><br>この問題について、私は長い間開いていましたLinux は、それがキャッシュの問題であることを最終的に発見しました <br>
ログイン後にコピー
PHP コード

<?php
ob_start();
for($i = 1; $i <= 100; $i ){
    ob_end_flush();//キャッシュを閉じる
    $sourceName = 'filetoupload' . $i;
    $imageArray = 配列();
    $message = "画像 $i がサーバーにアップロードされました";
    $メッセージをエコー;
    フラッシュ();
    ob_flush();
    usleep(500000);
}
ob_end_flush();
?>
<br /><font color='#e78608'>------解決策---------</font><br /><fieldset><legend>話し合う</legend> <br />引用:<br />この問題のために、長い間使用していなかった Linux を起動し、最終的にキャッシュの問題であることがわかりました<br /><br />PHP コード<br /><br /> <?php<br />ob_start(); <br />for($i = 1; $i <= 100; $i ){<br />ob_end_flush();//キャッシュをオフにする<br />$sourceName = 'filetoupload' . $i;<br />$imageArray = arr……<br /></fieldset>
<br /><font color='#e78608'>------解決策------------------</font><br />
このバッファは、ブラウザと Apache の特定のモジュールに関連しています。 <br />続けてみましょう<br />======================================<br /><dl class='code'>PHP コード<pre class="brush:php;toolbar:false">
ob_end_clean();
apache_setenv('no-gzip', 1);
ini_set('zlib.output_compression', 0);
ini_set('implicit_flush', 1);
ob_start();//データのバッファリングを開始
for($i = 1; $i <= 100; $i ){
    $sourceName = 'filetoupload' . $i;
    $imageArray = 配列();
    $message = "画像 $i がサーバーにアップロードされました<br/>";
    echo $message.str_repeat(" ",1024);//IE にはデフォルトの 1k バッファがあります
    ob_flush();
    フラッシュ();
    usleep(500000);
<div class="clear"></div>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート