我目前正在编写一个 PHP 库(主要是为我自己编写的),它在某些时候会让用户输入密码,并且我希望它被隐藏(只要密码没有在屏幕上完整显示,我几乎可以使用任何东西)。我到处搜索,但所有答案要么在 Win7 中不起作用,要么需要外部可执行文件。
因为它应该是一个库,所以我想保留它,所以我做了一些即兴创作并且非常接近,以至于我不愿意在不提出关于 SO 的问题的情况下退回到外部 .exe。
我的解决方法基于编写一个临时批处理文件(可以在之后删除或仅使用tmpfile()
)并使用以下方法调用它exec()
:
@echo off
choice /c abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 /n /cs
echo %errorlevel%
假设密码是纯字母数字的,我可以通过返回值来确定按下的键exec()
。然后我可以设置一个循环来捕获每个击键。剩下的唯一问题是用户无法中断,choice
因为回车键本身不能设置为选项之一。
任何帮助或其他解决方法表示赞赏。