PHP Exec命令 - 如何将输入传递给一系列问题

Gma*_*guy 6 php exec

我的linux服务器上有一个程序,每次执行时都会询问同一系列的问题,然后提供几行输出.我的目标是使用php脚本自动化输入和输出.

该程序不是为了接受命令行上的输入而设计的.相反,程序询问问题1并等待键盘的答案,然后程序询问问题2并等待键盘的答案等.

我知道如何通过编写来捕获数组中的输出:$ out = array(); EXEC( "我的/路径/程序",$出);

但是我该如何处理输入?假设程序询问3个问题,有效答案是:左120 n使用php将该输入传递给程序的最简单方法是什么?我可以在exec线上以某种方式做到这一点吗?

我不是一个PHP菜鸟,但以前从未需要这样做.唉,我的谷歌搜索正在进行.

dan*_*mau 5

首先,只是让您知道您正在尝试重新发明轮子。您真正需要的是expect(1),它是一个命令行实用程序,旨在完全执行您想要的操作,而不涉及PHP。

但是,如果您确实想编写自己的 PHP 代码,则需要使用proc_open. 以下是一些关于从子进程的 STDOUT 读取和写入 STDIN 的良好代码示例proc_open

最后,还有一个用于 PHP 的Expect PECL 模块

希望这可以帮助。