Я потратил несколько часов, пытаясь найти способ написания кроссплатформенного запроса пароля в php, который скрывает пароль, введенный пользователем. Хотя это легко сделать в среде Unix с помощью stty -echo, я пробовал различные способы вызовов passthru () и system (), чтобы заставить окна делать то же самое безрезультатно.
Я пробовал:
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 в пакетный файл и передать пароль в качестве аргумента командной строки, но в этом случае это не сработает.