PHP命令行:如何在不在控制台上显示键入的字符的情况下读入输入的密码?

时间:2009-10-23 22:02:50

标签: php command-line passwords

我想在密码中读取命令行脚本的一部分,但不要在屏幕上显示输入的密码。这似乎是命令行应用程序中相当常见的功能,但我的Google-fu无法确定其工作原理。它是操作系统的一个功能吗?您是否必须以某种方式拦截输入流,以便它不会写入控制台?我想在php命令行脚本中使用它,但我无法使用我无法理解的内容。

一些独立搜索产生了this链接,在底部向下,他们提到mysqladmin不使用STDIN来读取密码。他们如何做到这一点,我怎么能实现这个功能?

1 个答案:

答案 0 :(得分:0)

如果有人发现这个谷歌搜索,请回答。

在纯PHP中是不可能的。解决方案是为Linux执行小型shell脚本或为Windows执行小程序。

对于zsh shell,shell脚本看起来像这样:

/usr/bin/env zsh -c 'stty -echo; read -r mypassword; stty echo; echo $mypassword'

Seldaek从Composer编写了一个完整的工作实现,您可以在https://github.com/Seldaek/cli-prompt找到