Maison >développement back-end >tutoriel php >Comment obtenir un vidage de sortie en temps réel en PHP pour les journaux en direct ?
Vinage de sortie en PHP : affichage des journaux en direct pendant le traitement
En PHP, il est souvent souhaitable d'afficher la sortie sur le navigateur de l'utilisateur en tant que script processus, plutôt que d’attendre que le script soit entièrement terminé. Cela peut être utile pour afficher les journaux ou les mises à jour de progression en temps réel. Cependant, par défaut, PHP tamponne la sortie, ce qui signifie qu'elle n'est envoyée au client qu'à la fin du script.
'ob_flush()' est-il suffisant ?
A L'approche courante pour vider la sortie après chaque appel d'écho consiste à utiliser la fonction ob_flush(). Cependant, cela ne résout que partiellement le problème. Bien qu'il vide le tampon de sortie, il n'envoie pas réellement les données au client.
PHP ou Apache Fault ? Enquêter sur le problème
Si ob_flush() ne fonctionne pas, il peut s'agir d'un problème avec la configuration de PHP ou avec les paramètres d'Apache. Pour vérifier la configuration de PHP, exécutez la commande suivante :
php -i | grep output_buffering
Cela devrait indiquer si la mise en mémoire tampon de sortie est activée et la taille de la mémoire tampon. Si la mise en mémoire tampon de sortie est désactivée, ce n'est pas la cause du problème.
La solution ultime
La solution définitive à ce problème réside dans la définition de la taille du tampon de sortie sur 0. . Cela indique à PHP d'envoyer la sortie au client immédiatement sans la mettre en mémoire tampon.
ini_set('output_buffering', 0);
Final. Réflexions
En définissant la taille du tampon de sortie sur 0, vous pouvez vous assurer que la sortie est vidée après chaque appel d'écho, permettant aux utilisateurs de consulter vos journaux ou vos mises à jour de progression en temps réel.
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!