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

PHP Exec命令-如何将输入传递给一系列问题,php,exec,Php,Exec,我的linux服务器上有一个程序,每次执行时都会问相同的一系列问题,然后提供几行输出。我的目标是用php脚本自动化输入和输出 该程序不是为接受命令行上的输入而设计的。相反,程序询问问题1并等待键盘的回答,然后程序询问问题2并等待键盘的回答,以此类推 我知道如何通过写入以下内容来捕获数组中的输出: $out=array(); exec(“我的/路径/程序”,$out) 但是如何处理输入? 假设程序提出3个问题,有效答案为:左120 n 使用php将输入传递给程序的最简单方法是什么? 我可以在执行线

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

该程序不是为接受命令行上的输入而设计的。相反,程序询问问题1并等待键盘的回答,然后程序询问问题2并等待键盘的回答,以此类推

我知道如何通过写入以下内容来捕获数组中的输出: $out=array(); exec(“我的/路径/程序”,$out)

但是如何处理输入? 假设程序提出3个问题,有效答案为:左120 n 使用php将输入传递给程序的最简单方法是什么? 我可以在执行线上做吗

我不是一个PHPNoob,只是以前从来没有必要这么做。
唉,我的谷歌搜索正在转圈圈。

只需将参数添加到exec行即可

exec("/path/to/programname $arg1 $arg2 $arg3");

。。。但别忘了应用于每一个论点!否则,您很容易受到注入的恶意代码的攻击。

首先,让您知道您正在尝试重新发明轮子。您真正想要的是,它是一个命令行实用程序,旨在不涉及PHP而完全实现您想要的功能

$out = array();
//add elements/parameters/input to array
string $execpath = "my/path/program ";
foreach($out as $parameter) {
  $execpath += $parameter;
  //$execpath += "-"+$execpath; use this if you need to add a '-' in front of your parameters.
}
exec($execpath);
但是,如果您真的想编写自己的PHP代码,则需要使用。下面是一些关于使用
proc\u open
读取子进程的标准输出和写入子进程的标准输入的好代码示例:

  • (对不起,这是西班牙语的,但代码很好)
最后,还有一个用于PHP的示例


希望这有帮助。

您能让命令行程序通过命令获取输入吗?只需接受PHP值,然后将它们作为命令行参数传递。这是一个C++程序,我更像PHP/JavaScript之类的人。虽然我有源代码,但如果可能的话,我不想尝试和修改它。@用户,但为什么不用普通的PHP方式来做呢?创建一个表单,将其提交到PHP脚本exec()并输出结果?Pekka-感谢您的建议。我喜欢简单,但它不适合我。澄清一下:这个程序(我没有写)问了几个独立的问题。它希望每个人都有一个键盘回复。这项技术应该取代键盘输入吗?@user556597-您的要求与您在上述评论中所述的不同,请尝试用相关细节更新您的问题。感谢您提供有关expect(1)的提示。我不知道那个工具。坏消息-我使用的是共享主机(Blue主机),他们的php显然没有使用expect(1)支持编译。我将探索proc_open。再次感谢。