Я пытаюсь написать кроссплатформенную утилиту 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.
К сожалению, это невозможно (все еще сегодня) без подобного расширения для платформы для Windows, такого как * n * x (readline
, ncurses
).
Хуже того, даже если вы откажетесь от кроссплатформенного требования, я сомневаюсь, что есть такое (достаточно известное) расширение для этого в Windows. (Люди склонны рекомендовать писать привязки для таких вещей, как pdcurses (который, по крайней мере, сам по себе кроссплатформенный), так как, очевидно, никто еще не сделал и не опубликовал его.)
Вещи медленно прогрессируют, хотя, и, по крайней мере, readline
расширение теперь доступно для Windows (начиная с 7.1), но это просто если не считать небуферизованный символ функциональность …
Других решений пока нет …