Position actuelle: Accueil> Derniers articles> Explication détaillée de l'utilisation de base de l'OB_END_FLOSH: Comment utiliser correctement le tampon de sortie PHP

Explication détaillée de l'utilisation de base de l'OB_END_FLOSH: Comment utiliser correctement le tampon de sortie PHP

gitbox 2025-08-11

En PHP, la tampon de sortie est une fonctionnalité puissante qui permet aux développeurs de contrôler le moment de la sortie du contenu. ob_end_flush () est l'une des fonctions liées au tampon de sortie, qui est utilisée pour fermer le tampon de sortie et envoyer le contenu du tampon au navigateur. Cet article introduira en détail l'utilisation de base de Ob_end_flush () et comment utiliser correctement les tampons de sortie PHP dans le développement réel.

Qu'est-ce qu'un tampon de sortie?

Pendant l'exécution de PHP, tout le contenu de sortie (tel que HTML, texte, etc.) est généralement envoyé directement au navigateur. Cependant, PHP fournit un mécanisme de tampon de sortie qui permet aux développeurs de stocker le contenu en mémoire d'abord jusqu'à ce que certaines fonctions soient appelées avant la sortie. Ce mécanisme a les avantages suivants:

  1. Contrôle de la sortie de sortie : vous pouvez contrôler lorsque le contenu est envoyé au navigateur et même modifier la sortie pendant l'exécution.

  2. Améliorer les performances : réduire l'envoi multiple des en-têtes de réponse HTTP ou des opérations d'E / S répétées pour optimiser les performances.

  3. Flexibilité : dans certaines conditions, les développeurs peuvent choisir de ne pas sortir de contenu ou d'effectuer certaines opérations avant sortie, telles que le cache ou la compression.

Le rôle d'OB_END_FLUSH ()

Le but de la fonction ob_end_flush () est de fermer le tampon de sortie et d'envoyer tout dans le tampon au navigateur. Cette fonction est généralement utilisée pour mettre fin à un tampon de sortie, garantissant que le contenu tamponné est correctement transmis à l'utilisateur.

grammaire

 <span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>();
</span></span>
  • Valeur de retour : renvoyez true si réussi; Renvoie false si le tampon n'est pas actuellement ouvert.

Exemple d'utilisation

Supposons que vous souhaitiez d'abord tamponner du contenu dans le tampon de sortie dans un script PHP, puis publier tout en même temps après l'exécution du script. Voici un exemple simple:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Allumez la tampon de sortie</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();

</span><span><span class="hljs-comment">// Sortir du contenu,Mais il ne sera pas envoyé au navigateur tout de suite</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Hello, this is some buffered content!"</span></span><span>;

</span><span><span class="hljs-comment">// Contenu du tampon de sortie à la fin du script et fermer le tampon</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Dans le code ci-dessus, ob_start () démarre le tampon de sortie et toutes les sorties d'écho ne sont pas envoyées immédiatement au navigateur, mais sont enregistrées en mémoire. Le contenu du tampon ne sera pas envoyé au navigateur jusqu'à ce que OB_END_FLUSH () ne soit appelé.

Fonctions connexes

Lorsque vous utilisez ob_end_flush () , il est généralement nécessaire de mieux contrôler le comportement du tampon de sortie:

  1. ob_start () : Activez le tampon de sortie. Cette fonction est appelée avant d'envoyer un contenu de sortie.

     <span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();
    </span></span>
  2. ob_get_contents () : Obtenez le contenu du tampon actuel, mais ne le dégagez pas. Cela peut être utilisé pour déboguer ou obtenir la sortie pour une utilisation ultérieure.

     <span><span><span class="hljs-variable">$content</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ob_get_contents</span></span><span>();
    </span></span>
  3. ob_clean () : effacez le tampon, mais n'envoyez pas de contenu au navigateur. Cela signifie que vous pouvez jeter le contenu tamponné.

     <span><span><span class="hljs-title function_ invoke__">ob_clean</span></span><span>();
    </span></span>
  4. ob_end_clean () : effacez le tampon et fermez-le, similaire à ob_end_flush () , sauf qu'il n'enverra pas le contenu du tampon au navigateur.

     <span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>();
    </span></span>

Scénarios d'application des tampons de sortie

  1. Compression de page : vous pouvez utiliser le tampon de sortie pour compresser le contenu de la page, puis l'envoyer au navigateur, ce qui peut réduire efficacement la taille et le temps de chargement de la page. Voici un exemple de compression de pages à l'aide de ob_start () et ob_end_flush () :

     <span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(</span><span><span class="hljs-string">"ob_gzhandler"</span></span><span>);
    </span><span><span class="hljs-comment">// Contenu de sortie de la page</span></span><span>
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"This is a test page."</span></span><span>;
    </span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>();  </span><span><span class="hljs-comment">// Comprimer et sortir</span></span><span>
    </span></span>

    Dans le code ci-dessus, la fonction OB_GZHandler est utilisée pour effectuer une compression GZIP sur le contenu de sortie.

  2. Sortie retardée : si vous devez traiter du contenu (tel que les résultats de calcul, générer des rapports, etc.) pendant l'exécution des scripts PHP, mais ne souhaitez pas que l'utilisateur redette le processus intermédiaire, vous pouvez utiliser le tampon de sortie pour cache le contenu jusqu'à ce que tout le traitement soit terminé et le sortir à nouveau.

  3. Évitez les conflits d'informations d'en-tête : en PHP, les informations d'en-tête HTTP doivent être définies (telles que la fonction d'en-tête () ) avant d'envoyer une sortie. S'il y a une sortie avant d'envoyer les informations d'en-tête, une erreur sera causée. Ce problème peut être évité en sorti le tampon. Vous pouvez d'abord tamponner le contenu, puis publier les informations d'en-tête après les définir.

     <span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"This is some content"</span></span><span>;
    </span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">"Location: another_page.php"</span></span><span>);  </span><span><span class="hljs-comment">// Réorienter</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>();  </span><span><span class="hljs-comment">// Contenu de sortie</span></span><span>
    </span></span>

Choses à noter

  • Les tampons de sortie peuvent entraîner une consommation accrue de mémoire dans certains scénarios, en particulier lorsque le contenu du tampon est important. Dans ce cas, essayez d'éviter trop de tampon de contenu.

  • Sans appeler ob_end_flush () ou ob_end_clean () , PHP efface automatiquement le tampon de sortie à la fin du script et envoie le contenu au navigateur, mais ce n'est pas une pratique recommandée, en particulier dans des scripts ou scénarios plus longs impliquant une redirection.

Résumer

ob_end_flush () est une fonction importante dans le fonctionnement du tampon de sortie PHP. Il ferme non seulement le tampon de sortie, mais garantit également que le contenu tamponné est correctement sorti vers le navigateur. En utilisant rationnellement le tampon de sortie, les développeurs peuvent contrôler de manière plus flexible la synchronisation de sortie de la page, améliorer les performances, éviter les erreurs et même optimiser la vitesse de chargement de la page.

La maîtrise de ces opérations de base peut vous aider à mieux utiliser la fonction de tampon de sortie pendant le développement de PHP et à améliorer la contrôlabilité et les performances du programme.