интерфейс командной строки — PHP CLI — Трубопровод и подсказки одновременно?

У меня есть два сценария php cli. Первый передает данные во второй.
Я хочу, чтобы второй запросил у пользователя подтверждение.
Это возможно?

Я использую WordPress PHP-CLI-инструменты, но моя проблема, кажется, применима к php в целом, из того, что я вижу с моими основными тестами. (т.е. fgets (), readline и т. д.)

Я никогда не могу заставить приглашение работать, так как похоже, что оно всегда будет читать символ EOT из предыдущего ввода, даже если я уже прочитал его …

Затем, позже, когда я запрашиваю, используя fwrite для вывода, а затем fgets () для ввода, ничего не происходит. Программа просто ждет, чтобы что-то произошло … Не уверен, что …
Если я использую библиотеку, я получаю ошибку ‘Caught ^ D во время ввода’. Не повезло с readline либо …

Кто-нибудь когда-либо делал это раньше?

Спасибо вам большое!

0

Решение

Проблема не совсем специфична для PHP, она применима к любому языку. В Unix вы можете читать с /dev/tty вместо стандартного ввода, если вы хотите игнорировать перенаправление ввода и читать с терминала напрямую.

function prompt_user($prompt) {
$terminal = fopen("/dev/tty", "r+");
if ($terminal) {
fputs($terminal, $prompt);
return fgets($terminal);
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]