Командная строка PHP: Как мне прочитать набранный пароль без отображения набранных символов на консоли? - PullRequest
1 голос
/ 24 октября 2009

Я хочу прочитать пароль как часть сценария командной строки, но не указывать введенный пароль на экране. Кажется, это довольно распространенная функция в приложениях командной строки, но мой Google-фу не смог определить, как это работает. Это особенность ОС? Вам нужно как-то перехватить поток ввода, чтобы он не записывался на консоль? Я хотел бы использовать это в сценарии командной строки php, но я не могу использовать то, что не могу понять.

Некоторые независимые поиски дали эту ссылку, где внизу они упоминают, что mysqladmin не использует STDIN для чтения в пароле. Как они это делают, и как я могу реализовать эту функцию?

1 Ответ

0 голосов
/ 15 марта 2016

Ответ на случай, если кто-то найдет этот гугл.

Это невозможно в чистом PHP. Решение состоит в том, чтобы выполнить небольшой сценарий оболочки для Linux или небольшую программу для Windows.

Сценарий оболочки будет выглядеть так для оболочки zsh:

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

Полная рабочая реализация была написана Seldaek из Composer, которую вы можете найти по адресу https://github.com/Seldaek/cli-prompt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...