我有以下代碼:如何從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()來執行它。我的目標是運行一個交互式的過程,在這個過程中,用戶可以修改一個文件,並在修改後發送到某個地方。 –