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键表现正常并且对标准输入/标准输出有一些控制呢?

4

0 回答 0