FLUSH |
Vider |
|---|---|
| PHP 4+ | |
Syntaxe
| function flush(); |
Description
Cette fonction permet de vider les tampons de sortie du système.
Remarques
- La fonction flush() permet de forcer l'envoi immédiat du contenu du tampon de sortie au navigateur : Elle est utile dans les scripts où l'on souhaite afficher progressivement des résultats à l'utilisateur sans attendre la fin complète de l'exécution.
- Elle ne garantit pas que les données sont reçues immédiatement par le client : Même après l'appel à flush(), les serveurs Web comme Apache, les proxies, ou le navigateur lui-même peuvent continuer à retarder l'affichage du contenu.
- Pour fonctionner efficacement, flush() nécessite parfois l'usage conjoint de ob_flush() et ob_end_flush() : Dans les cas où un tampon de sortie est activé via ob_start(), flush() seul ne suffit pas ; il faut d'abord libérer les tampons d'output buffering intermédiaires.
- Elle est particulièrement utile pour les longues boucles ou traitements nécessitant un retour utilisateur progressif : Par exemple, dans un script traitant des milliers de lignes, on peut afficher une mise à jour à chaque étape grâce à flush().
- L'environnement serveur et la configuration PHP influencent directement son efficacité : Certains serveurs désactivent le tampon implicite ou imposent des délais dans la transmission des données, ce qui peut neutraliser partiellement flush().
- flush() est fréquemment utilisée avec des techniques de flux HTML ou JSON : Cela permet de simuler un effet temps réel dans des interfaces web, comme dans un tableau de bord de traitement ou des interfaces CLI simulées en ligne.
- Dans les environnements à hautes performances, flush() peut aider à améliorer la réactivité perçue : En envoyant rapidement les premiers octets au navigateur, on évite que l'utilisateur ne pense que la page est figée.
- Elle joue un rôle critique dans les scripts surveillant l'état de la connexion via connection_aborted() : Sans flush(), le serveur ne peut pas détecter une déconnexion côté client, car les données ne sont pas envoyées, et donc aucune erreur de transmission ne survient.
Dernière mise à jour : Samedi, le 3 mai 2025