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!