1

PHP で対話型プログラムを実行しようとしていますが、これは TTY で正常に動作しますが、PTY を介して STDIN/STDOUT をある程度制御することしかできません。

これを試したときにのみ、いくつかの奇妙な副作用があります.vimで何かを入力すると、以下のコードのように、印刷されたESCキーを使用できなくなります。

^[

これらを開始すると、いくつかの奇妙な文字もあります。

^[[2;2R^[[2;2R^[[>1;4002;0c^[[>1;4002;0c

$cmd = 'vim';
$proc = new \Symfony\Component\Process\Process($cmd);
$proc->setPty(true);
$proc->start();
$proc->wait(function($type, $buffer) use ($proc) {
    if (\Symfony\Component\Process\Process::ERR) {
        fwrite(STDERR, $buffer);
    }
    if (\Symfony\Component\Process\Process::OUT) {
        fwrite(STDOUT, $buffer);
    }
});

では、ESC キーが正常に動作し、stdin/stdout をある程度制御できるようにするにはどうすればよいでしょうか。

4

0 に答える 0