ホームページ > バックエンド開発 > PHPチュートリアル > shell - php的cli如何实现读取用户输入,但隐藏这段字符输出

shell - php的cli如何实现读取用户输入,但隐藏这段字符输出

WBOY
リリース: 2016-06-06 20:41:37
オリジナル
1028 人が閲覧しました

简单来说就是比如大家用ssh登陆时,一般要求输入密码,然后当你输入时你的输入是被隐藏的,但是后端实际上获取到了你的输入,这是怎么做到的呢?

回复内容:

简单来说就是比如大家用ssh登陆时,一般要求输入密码,然后当你输入时你的输入是被隐藏的,但是后端实际上获取到了你的输入,这是怎么做到的呢?

<code>function prompt_silent($prompt = "Enter Password:") {
  if (preg_match('/^win/i', PHP_OS)) {
    $vbscript = sys_get_temp_dir() . 'prompt_password.vbs';
    file_put_contents(
      $vbscript, 'wscript.echo(InputBox("'
      . addslashes($prompt)
      . '", "", "password here"))');
    $command = "cscript //nologo " . escapeshellarg($vbscript);
    $password = rtrim(shell_exec($command));
    unlink($vbscript);
    return $password;
  } else {
    $command = "/usr/bin/env bash -c 'echo OK'";
    if (rtrim(shell_exec($command)) !== 'OK') {
      trigger_error("Can't invoke bash");
      return;
    }
    $command = "/usr/bin/env bash -c 'read -s -p \""
      . addslashes($prompt)
      . "\" mypassword && echo \$mypassword'";
    $password = rtrim(shell_exec($command));
    echo "\n";
    return $password;
  }
}

echo prompt_silent();
</code>
ログイン後にコピー

参考:http://www.sitepoint.com/interactive-cli-password-prompt-in-php/

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート