Maison >développement back-end >tutoriel php >Comment garantir un vidage immédiat de la sortie en PHP après chaque appel « echo » ?

Comment garantir un vidage immédiat de la sortie en PHP après chaque appel « echo » ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-24 07:06:17277parcourir

How to Ensure Immediate Output Flushing in PHP After Each `echo` Call?

Réaliser le vidage de la sortie après chaque appel d'écho

Lors de l'utilisation de scripts PHP à des fins de journalisation, il est crucial de s'assurer que la sortie est transmise au client dès qu'il est généré. Cela empêche la page d'apparaître vide pendant le traitement du script.

Tentatives échouées avec ob_start() et ob_flush()

Malgré les tentatives avec ob_start() et ob_flush(), la sortie n'est pas immédiatement envoyée au client. Cela indique un problème potentiel de configuration PHP ou Apache.

Solution optimale : spécification du jeu de caractères

Pour résoudre ce problème, il est nécessaire de spécifier un jeu de caractères lors de l'utilisation de ob_flush( ). Voici un exemple qui a fonctionné :

header( 'Content-type: text/html; charset=utf-8' );
echo 'Begin ...<br />';
for( $i = 0 ; $i < 10 ; $i++ )
{
    echo $i . '<br />';
    ob_flush();
    flush();
    sleep(1);
}
echo 'End ...<br />';

En spécifiant le jeu de caractères, la sortie est transmise avec succès au client après chaque appel d'écho, garantissant que la page est mise à jour au fur et à mesure que les journaux sont générés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn