PHP:如何使用 STDIN 在基于 Linux 的系统上获取密码的秘密输入

PHP: How to use STDIN to get secret input for passwords on Linux based systems

从 STDIN 获取输入但看不到在 PHP CLI 模式下输入的内容的最新方法是什么,因此不显示密码之类的东西?

不同之处在于,仅在 Ubuntu 等基于 Linux 的系统上,大多数其他答案似乎都基于 Windows 支持,目前尚不清楚哪种方法是 Linux?

如果终端有 stty 可用,你可以这样做

<?php

shell_exec('stty -echo');

echo 'Enter pw: ';
$value = fgets(STDIN, 4096);

shell_exec('stty echo');

var_dump($value);

如果您需要花哨的星号,可以使用 systemd-ask-password(如果可用的话)

<?php

$value = shell_exec('systemd-ask-password "Enter pw:"');

var_dump($value);

在此处阅读更多内容:https://learnfromnoobs.com/hide-user-input-password/

Reading passwords from stdin in php 对我有用。比我在 SO 上看到的任何其他解决方案都要好。