Revision: 14243
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 26, 2009 11:12 by johnloy
Initial Code
/** * Interactively prompts for input without echoing to the terminal. * Requires a bash shell or Windows and won't work with * safe_mode settings (Uses `shell_exec`) */ 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; } }
Initial URL
Initial Description
Initial Title
Interactive CLI promt with PHP without echoing to terminal
Initial Tags
php, textmate
Initial Language
Other