stream — Командная строка PHP: проблемы в смешивании fread (STDIN, …) и fgets (STDIN)

Я работаю над сценарием командной строки, который использует fread (для да / нет, …) и fgets (для проверки значений вручную, …).

Проблема в том, что если я ввожу больше … символов (\ n тоже символ), эти символы уже вводятся в следующую функцию fgets / fread.

Я попытался fflush (STDIN), но это не сработало. Я также попробовал stream_get_line (STDIN, 1024); это было рекомендовано кем-то в вопросе о том же самом, но затем я должен ввести почти бесконечное количество символов, пока программа не продолжится (я ухожу).

Как заставить PHP удалить клавиатурный буфер перед использованием fgets / fread?

0

Решение

Если ваш PHP скомпилирован с Readline модуль (это довольно часто), вы можете просто использовать readline()

http://php.net/manual/en/function.readline.php

$input = readline( 'Prompt: ' );

readline() упрощает процесс чтения ввода с терминала.

0

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

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

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