Maison >développement back-end >tutoriel php >Comment intercepter la sortie standard en utilisant ob_start et d'autres fonctions en php
J'ai récemment utilisé PHP pour développer un logiciel sous cli et j'ai rencontré un tel problème. Je voulais collecter la sortie du script PHP, j'ai donc utilisé les deux fonctions ob_start et ob_end_flush, qui collectaient la sortie, mais les imprimaient également sur l'interface de la console. Ce que je veux demander, c'est s'il existe un moyen d'empêcher PHP de transmettre des informations à la console. En principe, ce logiciel ne permet pas d'imprimer quoi que ce soit sur la console.
php-cli lui-même exécute le script indépendamment du serveur Web. Je ne sais pas comment vous avez obtenu les données que vous obtenez maintenant ? Si vous n'obtenez pas la valeur renvoyée en exécutant le programme php via cli, vous pouvez utiliser ob_get_clean()
qui obtiendra le contenu mis en cache, puis videra la zone de cache. Cela peut obtenir l'effet que vous avez mentionné. afficher l'interface d'affichage.
Bien sûr, vous pouvez également obtenir le contenu du tampon, puis l'effacer (contrôler pour ne pas afficher sur la console), puis flasher le contenu sur le serveur Web pour traitement
Cela a été fait selon la méthode ci-dessus. J'ai déjà utilisé cette série de fonctions, mais je ne les ai pas utilisées depuis si longtemps que je les ai oubliées.
Ce sur quoi nous travaillons actuellement est un serveur dynamique HTTP multi-processus basé sur PHP. Un mémoire de fin d’études n’est qu’un produit de test et n’a aucune utilité pratique.
Le résultat de l'exécution du programme php-cgi est une entrée et une sortie standard, donc le résultat de la sortie ne peut être intercepté qu'en obtenant les entrées et les sorties standard, mais je ne le ferai pas. 🎜>
C'est tout. C'est tout le contenu de cet article, j'espère qu'il vous plaira tous. Pour plus d'articles sur la façon dont ob_start et d'autres fonctions dans PHP interceptent la sortie standard, veuillez faire attention au site Web PHP chinois !