ввод — обнаружение / чтение нажатой клавиши, кросс-платформенный PHP CLI

Я пытаюсь написать кроссплатформенную утилиту PHP для личного использования, чтобы ничего не изобретать.
Код будет работать в пределах более или менее

while (true) {
$key = null;
$key = check_key_pressed();
if ($key) do_relevant_magic($key);
usleep(250000);
}

Мне нужно что-то для check_key_pressed() что вернет значение нажатой клавиши, не дожидаясь EOF/EOL, не запрашивая ввод явно, пока какая-либо клавиша не будет нажата.

это должен работа над * NIX и Windows так ncurses это не вариант. Я тоже не хочу exec вызовы внешних VBS или bash-скриптов, это должно быть сделано исключительно на PHP, надеюсь, я не слишком многого желаю.

РЕДАКТИРОВАТЬКонечно, я проверил другие SO-решения, и ни одно из них не кажется действительно кроссплатформенным. Ncrurses а также readline недоступны на окнах, и это должно перехватить KeyDown или же нажатие клавиши или же вход готов на Linux и Windows.

7

Решение

К сожалению, это невозможно (все еще сегодня) без подобного расширения для платформы для Windows, такого как * n * x (readline, ncurses).

Хуже того, даже если вы откажетесь от кроссплатформенного требования, я сомневаюсь, что есть такое (достаточно известное) расширение для этого в Windows. (Люди склонны рекомендовать писать привязки для таких вещей, как pdcurses (который, по крайней мере, сам по себе кроссплатформенный), так как, очевидно, никто еще не сделал и не опубликовал его.)

Вещи медленно прогрессируют, хотя, и, по крайней мере, readline расширение теперь доступно для Windows (начиная с 7.1), но это просто если не считать небуферизованный символ функциональность …

0

Другие решения

Других решений пока нет …