PHP. Эхо не работает в бесконечном цикле после readline

Я пытаюсь написать простой скрипт, который будет работать с консоли, но я столкнулся с проблемой. Эхо в моем случае не работает. Но когда я удаляю строку readline (‘Command:’), она начинает работать как положено, поэтому я попытался заменить echo на print_r, но это не помогло. Я запускаю скрипт из консоли Windows.

<?php
while (true){
$input = readline('Command: ');
$input = strtolower($input);
echo $input;                    //don't work
switch ($input){
case 'stop':
exit(0);
break;
case '1':
echo 1;                //don't work
break;
default:
echo 'Command ' . $input . ' not found.';  //don't work
}
}

-1

Решение

От комментариев пользователя к документации — http://php.net/manual/en/function.readline.php#104181

Библиотека readline недоступна в Windows.

if (PHP_OS == 'WINNT') {
echo '$ ';
$line = stream_get_line(STDIN, 1024, PHP_EOL);
} else {
$line = readline('$ ');
}

Так что постарайтесь

  echo 'Command: ';
$input = stream_get_line(STDIN, 1024, PHP_EOL);

Как уже указывалось, начиная с PHP 7.1, эта функция доступна в Windows, но до этого она выглядит так, как будто вы можете сделать выше.

1

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

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

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