blu*_*ral 2 php keyboard-events
我试图用键盘输入控制PHP的东西.我目前检测击键的方式是:
function read() {
$fp1=fopen("/dev/stdin", "r");
$input=fgets($fp1, 255);
fclose($fp1);
return $input;
}
print("What is your first name? ");
$first_name = read();
Run Code Online (Sandbox Code Playgroud)
问题在于它没有读取"实时"击键.我不知道使用这种方法是否可行,我想这也不是最有效的方法.我的问题是1)如果这是一个很好的方法,那么我怎么能让它工作,这样当你在页面上键入时,它将捕获击键,2)如果这是一个不好的方法,我怎样才能更好地实现它(可能使用ajax或其他东西)?
编辑:我使用PHP作为网页,而不是命令行.
我假设您使用PHP作为Web脚本语言(而不是命令行)...
从我所看到的,你将希望在客户端使用Javascript来读取关键输入.一旦服务器将页面传递给客户端,就没有PHP交互.因此,使用AJAX读取客户端密钥输入并回调服务器是可行的方法.
有JavaScript的一些详细信息和检测按键位置以及如何使用AJAX一些信息在这里.
jQuery的一个简洁选项是使用delayedObserver之类的东西
如果您正在编写 CLI 应用程序(而不是 Web 应用程序),您可以使用ncurses 的 getch()函数来获取单个按键。祝你好运!
如果您不是在编写 CLI 应用程序,我建议您遵循 Andrew 的回答。