Kod adalah seperti berikut
while(true){
$getitem = mysql_query("pilih * daripada susunan buletin mengikut id desc had 1");
$item = mysql_fetch_array($getitem);
echo json_encode($item,JSON_UNESCAPED_UNICODE);
ob_flush();
flush();
ob_clean(); //Tidak begitu memahami fungsi ob_clean
mysql_data_seek($getitem,0);
tidur(1);
}
Kawasan cache PHP boleh mengeluarkan kandungan kawasan cache kepada penyemak imbas melalui ob_flush dan flush, dan fungsi ob_clean adalah untuk mengosongkan kawasan cache, jadi hasil yang diharapkan adalah untuk mengeluarkan hanya sekeping data terakhir setiap kali . Tetapi sebenarnya, output sebelumnya tidak dibersihkan Bagaimana saya boleh mencapai keperluan saya?
Penggunaan tiga fungsi berikut
ob_get_contents() - 返回輸出緩沖區(qū)的內(nèi)容
ob_flush() - 沖刷出(送出)輸出緩沖區(qū)中的內(nèi)容
ob_clean() - 清空(擦掉)輸出緩沖區(qū)
ob_end_flush() - 沖刷出(送出)輸出緩沖區(qū)內(nèi)容并關(guān)閉緩沖
ob_end_clean() - 清空(擦除)緩沖區(qū)并關(guān)閉輸出緩沖
flush() - 刷新輸出緩沖
通常是ob_flush();flush()同時(shí)一起使用
使用ob_start()把輸出那同輸出到緩沖區(qū),而不是到瀏覽器。
然后用ob_get_contents得到緩沖區(qū)的數(shù)據(jù)。
ob_start() membuka penimbal pada pelayan untuk menyimpan semua output. Jadi pada bila-bila masa gema digunakan, output akan ditambah pada penimbal sehingga program tamat atau ditamatkan menggunakan ob_flush(). Kemudian kandungan penimbal dalam pelayan akan dihantar ke penyemak imbas, yang akan dihuraikan dan dipaparkan oleh penyemak imbas.
Fungsi ob_end_clean akan mengosongkan kandungan penimbal dan menutup penimbal, tetapi tidak akan mengeluarkan kandungan.
Pada masa ini, fungsi ob_get_contents() mesti digunakan di hadapan ob_end_clean() untuk mendapatkan kandungan penimbal.
Dalam kes ini, kandungan boleh disimpan ke pembolehubah sebelum melaksanakan ob_end_clean(), dan kemudian pembolehubah itu boleh dikendalikan selepas ob_end_clean().