В PHP я могу читать ввод из программы командной строки с помощью следующего кодаPHP: Добавление Arrow Key поддержки в STDIN/Single Character Обработка
$stream = STDIN;
$test = fgets($stream);
echo $test;
Это хорошо работает для простого ввода. Однако, если я пытаюсь использовать что-то вроде кнопки возврата стрелки, моя оболочка выглядит следующим образом
This is a test^[[D^[[D^[[D
т.е. клавиша со стрелкой последовательность выхода из ^[[D
отправляются в оболочку. Сам PHP будет интерпретировать клавиши со стрелками - т.е. inputing этот
This is a test^[[D^[[D^[[D^[[Dsecond test
выведет на экран этот
This is a second test
Однако, я хотел бы оболочку «правильно» (то есть делать то, что я думаю, что они должны делать , а не буквально то, что я отправил) интерпретировать клавиши со стрелками, чтобы точка ввода перемещалась при наборе текста.
Возможно ли это на PHP? С расширением? Без расширения? Я пробовал варианты fgets($stream, 1)
, но кажется, что PHP просто зависает, пока пользователь не вводит ключ ввода.
ли лет, что я пытаюсь его; Надеюсь, у кого-то есть решение! – fusion3k