代码如下
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的作用是清空缓存区,所以预想的结果是每次只输出最后一条数据。但是实际上之前的输出并没有清空,请问怎么实现我的需求呢?
다음 세 가지 기능의 사용법
으아아아ob_start()는 모든 출력을 저장하기 위해 서버에서 버퍼를 엽니다. 따라서 echo가 사용될 때마다 프로그램이 종료되거나 ob_flush()를 사용하여 종료될 때까지 출력이 버퍼에 추가됩니다. 그런 다음 서버의 버퍼 내용이 브라우저로 전송되고, 브라우저는 이를 구문 분석하여 표시합니다.
ob_end_clean 함수는 버퍼의 내용을 지우고 버퍼를 닫지만 내용을 출력하지는 않습니다.
이때, 버퍼의 내용을 얻으려면 ob_end_clean() 앞에 ob_get_contents() 함수를 사용해야 합니다.
이 경우, ob_end_clean()을 실행하기 전에 내용을 변수에 저장하고, ob_end_clean() 후에 해당 변수를 연산할 수 있습니다.