Я пытаюсь заставить интерактивную программу работать на PHP, теперь она отлично работает в TTY, только я могу лишь контролировать STDIN / STDOUT через PTY.
Только когда я пытаюсь это сделать, у него появляются странные побочные эффекты, такие как приведенный ниже код, когда я набираю что-то в 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?
Задача ещё не решена.
Других решений пока нет …