Le code est le suivant
tandis que(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(); //Je ne comprends pas très bien la fonction de ob_clean
mysql_data_seek($getitem,0);
dormir(1);
La zone de cache PHP peut afficher le contenu de la zone de cache vers le navigateur via ob_flush et flush, et la fonction de ob_clean est de vider la zone de cache, donc le résultat attendu est de ne sortir que le dernier élément de données à chaque fois. . Mais en fait, la sortie précédente n’est pas effacée. Comment puis-je répondre à mes besoins ?
Utilisation des trois fonctions suivantes
ob_start() ouvre un tampon sur le serveur pour enregistrer toutes les sorties. Ainsi, chaque fois que echo est utilisé, la sortie sera ajoutée au tampon jusqu'à la fin du programme ou jusqu'à ce qu'il soit terminé à l'aide de ob_flush(). Ensuite, le contenu du tampon du serveur sera envoyé au navigateur, qui sera analysé et affiché par le navigateur.
La fonction ob_end_clean effacera le contenu du tampon et fermera le tampon, mais n'affichera pas le contenu.
A ce moment, une fonction ob_get_contents() doit être utilisée devant ob_end_clean() pour obtenir le contenu du buffer.
Dans ce cas, le contenu peut être enregistré dans une variable avant d'exécuter ob_end_clean(), puis la variable peut être utilisée après ob_end_clean().