Rumah > Soal Jawab > teks badan
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?
PHP中文网2017-05-16 13:12:26
Penggunaan tiga fungsi berikut
ob_get_contents() - 返回输出缓冲区的内容
ob_flush() - 冲刷出(送出)输出缓冲区中的内容
ob_clean() - 清空(擦掉)输出缓冲区
ob_end_flush() - 冲刷出(送出)输出缓冲区内容并关闭缓冲
ob_end_clean() - 清空(擦除)缓冲区并关闭输出缓冲
flush() - 刷新输出缓冲
通常是ob_flush();flush()同时一起使用
使用ob_start()把输出那同输出到缓冲区,而不是到浏览器。
然后用ob_get_contents得到缓冲区的数据。
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().