Как я могу очистить стандартный ввод php перед новым вводом?
У меня есть вопрос nooby о php-cli.
Я использую это:
define("STDIN", fopen('php://stdin','r'));
$input = "";
while($input == "") {
echo "Please enter : ";
$input = fread(STDIN, 80);
}
Проблема в том, что:
Если я введу более 80 символов, скажем 100, 20 дополнительных символов будут добавлены к следующему.
Как я могу "очистить" стандартный ввод данных перед каждым вводом?
1 answers
Установите length
аргумент fread()
на большее значение (т.Е. 1024, 2048, 10000) - он определяет максимальную длину данных, считываемых fread()
. Если вам нужно всего до 80 символов, то проверьте это после прочтения и при необходимости сократите с помощью substr()
. Вам не нужно открывать входной поток, если вы используете STDIN
( документы), который рекомендуется из-за ошибок в обработке php://stdin
до PHP 5.2.1 (документы).
$input = "";
while($input == "") {
echo "Please enter : ";
$input = fread(STDIN, 10000);
}
Также имейте в виду STDIN
, STDOUT
, STDERR
уже определены системные константы. Вы не должны использовать эти имена для своих собственных констант.