Я пытаюсь написать простой скрипт, который будет работать с консоли, но я столкнулся с проблемой. Эхо в моем случае не работает. Но когда я удаляю строку 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
}
}
От комментариев пользователя к документации — 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, но до этого она выглядит так, как будто вы можете сделать выше.
Других решений пока нет …