次のコードがあります。
$process = new Process('vi'); 試す { $process->setPty(true); $process->mustRun(function ($type, $buffer) { エコー$バッファ; }); //echo $process->getOutput(); } キャッチ (ProcessFailedException $e) { echo $e->getMessage(); }
ただし、次の情報で死ぬ:
コマンド「vi」が失敗しました。 終了コード: 1 (一般エラー) 作業ディレクトリ: [パス] 出力: ================ Vim: 入力の読み取り中にエラーが発生しました。終了しています... ヴィム:完成。 エラー出力: ================ Vim: 警告: 出力は端末へではありません Vim: 警告: 入力は端末からではありません
アップデート
私が何をしようとしているのか、何人かの人々にとっては明確ではなかったようです. 説明します。このスクリプトはコンソールで実行されています。同じことがパススルー経由でも機能します (ただし、Vim はまだ出力について警告します)。ユーザーがファイルをどこかに送信する前に変更できるようにするインタラクティブなプロセスが必要です。私は独自のエディターを実装したくないので、vi を使用してもらいたいのです。vi は私のサーバーで利用できます (提供した出力からはっきりとわかります)。