У меня есть следующий код:Как запустить vi из Symfony Process?
$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 доступен на моем сервере (это ясно видно из предоставленного мной вывода).
Ну, вы уверены, что можете выполнить vi через php? (По крайней мере, если вы говорите об текстовом редакторе linux) – Epodax
Я уверен. Его можно выполнить с помощью passthru(). Моя цель - запустить интерактивный процесс, в котором пользователю будет предоставлена возможность изменить файл, который будет отправлен где-то после его модификации. –