代码如下
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的作用是清空缓存区,所以预想的结果是每次只输出最后一条数据。但是实际上之前的输出并没有清空,请问怎么实现我的需求呢?
以下の3つの機能の使い方
リーリーob_start() はサーバー上のバッファを開き、すべての出力を保存します。そのため、echo が使用されるたびに、プログラムが終了するか、ob_flush() を使用して終了されるまで、出力はバッファーに追加されます。次に、サーバー内のバッファの内容がブラウザに送信され、ブラウザによって解析されて表示されます。
関数 ob_end_clean はバッファの内容をクリアしてバッファを閉じますが、内容は出力しません。
現時点では、関数 ob_get_contents() を ob_end_clean() の前で使用して、バッファの内容を取得する必要があります。
この場合、ob_end_clean()を実行する前に内容を変数に保存し、ob_end_clean()の後にその変数を操作することができます。