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_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().