comet - 请问如何清除php的缓存区
phpcn_u1582
phpcn_u1582 2017-05-16 13:10:26
0
1
452

代码如下

while(true){

        $getitem = mysql_query("select * from bulletin order by id desc limit 1");

        $item = mysql_fetch_array($getitem);

        echo json_encode($item,JSON_UNESCAPED_UNICODE);

        ob_flush();

        flush();

        ob_clean(); //不太懂ob_clean的作用

        mysql_data_seek($getitem,0);

        sleep(1);
}

php缓存区通过ob_flush和flush可以把缓存区的内容输出给浏览器,而ob_clean的作用是清空缓存区,所以预想的结果是每次只输出最后一条数据。但是实际上之前的输出并没有清空,请问怎么实现我的需求呢?

phpcn_u1582
phpcn_u1582

全員に返信(1)
洪涛

以下の3つの機能の使い方

リーリー

ob_start() はサーバー上のバッファを開き、すべての出力を保存します。そのため、echo が使用されるたびに、プログラムが終了するか、ob_flush() を使用して終了されるまで、出力はバッファーに追加されます。次に、サーバー内のバッファの内容がブラウザに送信され、ブラウザによって解析されて表示されます。

関数 ob_end_clean はバッファの内容をクリアしてバッファを閉じますが、内容は出力しません。
現時点では、関数 ob_get_contents() を ob_end_clean() の前で使用して、バッファの内容を取得する必要があります。
この場合、ob_end_clean()を実行する前に内容を変数に保存し、ob_end_clean()の後にその変数を操作することができます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!