У меня есть два сценария php cli. Первый передает данные во второй.
Я хочу, чтобы второй запросил у пользователя подтверждение.
Это возможно?
Я использую WordPress PHP-CLI-инструменты, но моя проблема, кажется, применима к php в целом, из того, что я вижу с моими основными тестами. (т.е. fgets (), readline и т. д.)
Я никогда не могу заставить приглашение работать, так как похоже, что оно всегда будет читать символ EOT из предыдущего ввода, даже если я уже прочитал его …
Затем, позже, когда я запрашиваю, используя fwrite для вывода, а затем fgets () для ввода, ничего не происходит. Программа просто ждет, чтобы что-то произошло … Не уверен, что …
Если я использую библиотеку, я получаю ошибку ‘Caught ^ D во время ввода’. Не повезло с readline либо …
Кто-нибудь когда-либо делал это раньше?
Спасибо вам большое!
Проблема не совсем специфична для PHP, она применима к любому языку. В Unix вы можете читать с /dev/tty
вместо стандартного ввода, если вы хотите игнорировать перенаправление ввода и читать с терминала напрямую.
function prompt_user($prompt) {
$terminal = fopen("/dev/tty", "r+");
if ($terminal) {
fputs($terminal, $prompt);
return fgets($terminal);
}
}
Других решений пока нет …