我的linux服务器上有一个程序,每次执行时都会询问同一系列的问题,然后提供几行输出.我的目标是使用php脚本自动化输入和输出.
该程序不是为了接受命令行上的输入而设计的.相反,程序询问问题1并等待键盘的答案,然后程序询问问题2并等待键盘的答案等.
我知道如何通过编写来捕获数组中的输出:$ out = array(); EXEC( "我的/路径/程序",$出);
但是我该如何处理输入?假设程序询问3个问题,有效答案是:左120 n使用php将该输入传递给程序的最简单方法是什么?我可以在exec线上以某种方式做到这一点吗?
我不是一个PHP菜鸟,但以前从未需要这样做.唉,我的谷歌搜索正在进行.
首先,只是让您知道您正在尝试重新发明轮子。您真正需要的是expect(1),它是一个命令行实用程序,旨在完全执行您想要的操作,而不涉及PHP。
但是,如果您确实想编写自己的 PHP 代码,则需要使用proc_open. 以下是一些关于从子进程的 STDOUT 读取和写入 STDIN 的良好代码示例proc_open:
最后,还有一个用于 PHP 的Expect PECL 模块。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
10607 次 |
| 最近记录: |