我花了几个小时试图找到一种在 php 中编写跨平台密码提示的方法,以隐藏用户输入的密码。虽然这可以通过使用 stty -echo 在 Unix 环境中轻松完成,但我尝试了各种 passthru() 和 system() 调用方法来使 Windows 执行相同的操作,但无济于事。
我试过了:
passthru('set /p pass=Password: ');
system('echo %pass% > out.txt');
$pass = file_get_contents('out.txt', 'r');
这似乎挂在 passthru('set /p pass=Password: '); 不允许我输入任何文本的行,必须用 Ctrl-c 杀死。
我还尝试了各种 fgetc 和 fgets 方法以及打印退格字符来隐藏输入,因为这适用于其他语言。但是,PHP 似乎无法在回车之前与文本交互。
我真的很想找到一种方法来完成这项工作,这是一项不可能完成的任务还是可以完成的事情?
请注意,我知道我可以将 php 脚本包装在批处理文件中并将密码作为命令行参数传递,但在这种情况下这对我不起作用。