en PHP hay varios métodos para ejecutar un comando shell:programa en ejecución en php - pantalla y volver salida
- sistema()
- passthru()
- shell_exec()
- exec ()
Las dos primeras pantallas se imprimen pero no la devuelven. Las dos últimas devuelven la salida pero no la muestran.
Quiero ejecutar el comando de shell que requiere mucho tiempo pero muestra algunos resultados, así que sé que no se cuelga. Sin embargo, al final quiero procesar esta salida en php. Si elijo uno de los dos primeros, no obtendré ningún resultado, por lo que no podré procesarlo en php. Si ejecuto uno de los dos últimos, podré procesar el resultado; sin embargo, mi programa se bloqueará durante mucho tiempo sin generar ningún resultado.
¿Hay alguna forma de ejecutar un comando de shell que muestre la salida inmediatamente y la devuelva?
¿El segundo argumento al sistema() llamar no ayuda? – KTastrophy
El segundo argumento es el estado de retorno del comando ejecutado, p. 0 si todo estaba bien y 1 si hubo error. Debo mencionar que también necesito esto: shell_exec() es el que no admite eso. –
No creo que haya ningún comando PHP que ejecute el código del shell e imprima el resultado en la pantalla antes de que la ejecución finalice. – Travesty3