J'essaie de comprendre comment afficher la sortie (et lire l'entrée) en temps réel dans un processus lancé par PHP sur la ligne de commande. Il semble y avoir beaucoup de solutions de rechange: shell(), exec(), system(), popen(), proc_open()
Exécuter le processus en temps réel
et il n'est pas complètement clair pour moi quelles sont les différences. Tout ce dont j'ai besoin est d'exécuter un processus, d'afficher sa sortie sur le même terminal où le script PHP est appelé, peut-être lire l'entrée et enfin revenir au flux de script PHP quand le processus se termine. Parmi les options que j'ai énumérées, proc_open()
est probablement capable de le faire, mais cela semble trop compliqué, car tout ce que je veux faire est de donner le contrôle à un processus externe et attendre qu'il se termine. Il y a quelques questions qui semblent liées, mais pour autant que je puisse voir, il s'agit en fait d'envoyer le processus en arrière plan (ce que je ne veux pas) ou d'afficher la sortie dans un navigateur (ce qui n'est pas mon cas, tout est dans un terminal).
Pouvez-vous spec ce que vous entendez par « temps réel »? Cela fera une différence dans le genre de réponses que vous obtenez. Par exemple, «temps réel» en termes de perception humaine est différent de «temps réel» en termes de système de contrôle dans une centrale nucléaire. – rcravens
Je veux dire en temps réel dans le sens de la perception de l'utilisateur. Le point est que par exemple shell() donnera toute la sortie du processus ensemble, quand il est fini. – Andrea