ob_end_flush
ob_end_flush()
Envoie le contenu du tampon de sortie courant (au tampon parent, ou au navigateur) et ferme le tampon. Renvoie true, sans tampon actif false avec une notice.
Exemples
function uppercased($text) {
ob_start(fn($content) => strtoupper($content));
echo $text;
// le contenu passe par la fonction d'ob_start et il est envoyé
ob_end_flush();
}
uppercased("bonjour"); // BONJOUR
// ob_end_clean jetterait le contenu
function without_output($text) {
ob_start();
echo $text;
ob_end_clean();
return "jeté";
}
echo without_output("bonjour"); // jeté
// affichage progressif d'une longue tâche
// while (ob_get_level()) ob_end_flush();
// foreach ($steps as $s) { echo $s . "<br>"; flush(); }
Points d’attention
- Avec des tampons imbriqués, elle envoie le contenu au tampon parent, pas directement au navigateur.
- Même une fois tous les tampons envoyés, le navigateur peut ne pas voir les données tout de suite. Le serveur web a d’autres tampons (compression gzip, FastCGI). L’affichage progressif n’est donc pas un moyen fiable de montrer l’avancement.
- Sans tampon actif, elle affiche une notice et renvoie false.
Fonctions associées :
ob_end_clean()
ob_start()
ob_get_clean()
ob_get_flush()