Aller au contenu

Fonction PHP ob_implicit_flush() : Tout ce que vous devez savoir

En tant que développeur PHP, vous devrez peut-être contrôler le vidage implicite du tampon de sortie. La fonction ob_implicit_flush() est une fonction intégrée de PHP qui permet d'activer ou de désactiver ce comportement. Cet article couvre sa syntaxe, son utilisation et les considérations pratiques.

Qu'est-ce que la fonction ob_implicit_flush() ?

La fonction ob_implicit_flush() active ou désactive le vidage implicite. Lorsqu'elle est activée, PHP appelle automatiquement ob_flush() après chaque instruction echo ou print. Dans les versions modernes de PHP, cette fonction retourne void. De plus, les serveurs web (comme Apache ou PHP-FPM) tamponnent souvent les données indépendamment, vous devrez donc peut-être toujours appeler flush() pour garantir que les données atteignent immédiatement le navigateur.

Comment utiliser la fonction ob_implicit_flush() ?

L'utilisation de la fonction ob_implicit_flush() est simple. Voici la syntaxe :

La syntaxe PHP de la fonction ob_implicit_flush()

php
ob_implicit_flush(bool $flag = true): void;

Voici un exemple démontrant comment activer le vidage implicite et gérer le nettoyage :

Comment utiliser la fonction ob_implicit_flush() ?

php
<?php

ob_start();
ob_implicit_flush(true);
echo "This will be flushed automatically";
flush();
sleep(5);
ob_end_clean();

Dans cet exemple, ob_start() initialise le tampon de sortie. L'appel de ob_implicit_flush(true) active le vidage automatique. L'appel à flush() garantit que la sortie contourne les tampons du serveur web et atteint immédiatement le navigateur. L'appel à sleep(5) démontre que le navigateur reçoit le message avant la fin du script. Enfin, ob_end_clean() supprime tout contenu tamponné restant. Notez que lorsque le vidage implicite est actif, vous pouvez toujours appeler manuellement ob_flush() si un contrôle supplémentaire est nécessaire.

Conclusion

La fonction ob_implicit_flush() offre un moyen simple de contrôler le comportement du tampon de sortie en PHP. En comprenant son type de retour void et son interaction avec flush() et les tampons côté serveur, vous pouvez gérer efficacement les sorties en temps réel pour les scripts de longue durée ou les indicateurs de progression.

Pratique

Que fait ob_implicit_flush(1) en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.