我试图用键盘输入控制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();
问题在于它没有正常读取击键。我不知道使用这种方法是否可行,我想这也不是最有效的方法。我的问题是1)如果这是一个很好的方法,那么我怎样才能使它工作,这样当你在页面上键入时,它将捕获击键,2)如果这是一个不好的方法,我怎样才能更好地实现它(可能使用ajax或其他东西)?
编辑:我使用PHP作为网页,而不是命令行。
答案 0 :(得分:5)
我假设你使用PHP作为网络脚本语言(而不是命令行)......
从我所看到的,您将希望在客户端使用Javascript来读取关键输入。一旦服务器将页面传递给客户端,就没有PHP交互。因此,使用AJAX读取客户端密钥输入并回调服务器是可行的方法。
有关Javascript和检测按键here的更多信息以及有关如何使用AJAX here的一些信息。
jQuery的一个简洁选项是使用delayedObserver
之类的东西答案 1 :(得分:4)
如果您正在编写CLI应用程序(而不是Web应用程序),则可以使用ncurses' getch()函数获取单个键击。祝你好运!
如果您没有编写CLI应用程序,我建议您按照Andrew的回答。
答案 2 :(得分:-3)