我有以下代码:如何从Symfony进程运行vi?
$process = new Process('vi'); try { $process->setPty(true); $process->mustRun(function ($type, $buffer) { echo $buffer; }); //echo $process->getOutput(); } catch (ProcessFailedException $e) { echo $e->getMessage(); }
然而,死亡对我来说有以下信息:
The command "vi" failed. Exit Code: 1(General error) Working directory: [path] Output: ================ Vim: Error reading input, exiting... Vim: Finished. Error Output: ================ Vim: Warning: Output is not to a terminal Vim: Warning: Input is not from a terminal
UPDATE
似乎并不清楚对某些人是我我会去做的。我会解释。该脚本正在控制台中运行。同样的事情通过passthru工作(虽然Vim仍然警告输出)。我想要一个交互式的过程,允许用户在发送某个文件之前修改某个文件。我不想实现自己的编辑器,这就是为什么我希望他们使用vi。 vi可以在我的服务器上使用(从我提供的输出中清楚可见)。
那么,你确定你可以通过php执行vi吗? (至少如果你在谈论linux文本编辑器) – Epodax
我确定。可以使用passthru()来执行它。我的目标是运行一个交互式的过程,在这个过程中,用户可以修改一个文件,并在修改后发送到某个地方。 –