我试图弄清楚如何在PHP在命令行上启动的过程中实时显示输出(和读取输入)。似乎有很多选择:
shell(), exec(), system(), popen(), proc_open()
我并不完全清楚有什么不同之处。我只需要执行一个进程,在调用PHP脚本的同一终端上显示其输出,也可以读取输入,最后在进程退出时返回到PHP脚本流。我列出的选项proc_open()
可能会做到这一点,但它看起来有点过分,因为我想做的就是控制外部进程并等待它完成。
有一些看似相关的问题,但据我所知,它们实际上是关于在后台发送进程(我不想要)或在浏览器中显示输出(这不是我的情况,一切都是在一个终端)。
答案 0 :(得分:2)
使用pcntl_fork()
和pcntl_exec()
,例如this
答案 1 :(得分:0)
Google代码搜索上的this result可能会有所帮助。据我所知,它正在做一些非常类似于你正在寻找的东西,包括从STDOUT获取输出并(可能)通过STDIN提供输入。