Поскольку PHP имеет встроенную функцию unix readline()
, чтобы сделать именно это, оставляя здесь следующие примечания.
Мы можем использовать и удерживать результат readline
в var.
#!/usr/bin/php
Пример вывода:
l
ls result
h
«hello»
q
выйти
ctrl+c
выйти.
ctrl+d
с пустым входом, продолжить следующая последовательность. "Благодаря". $user
определен и пуст, нет ошибки.
ctrl+d
с некоторым вводом: никаких действий.
ctrl+m
Продолжить и взять текущий вход в $user
.
ctrl+j
Продолжить и взять текущий вход в $user
, такое же поведение, как и ctrl+m
.
Return
перейти к следующей последовательности «Спасибо». $user
может оставаться пустым, без ошибок.
ctrl+z
может использоваться для отмены цикла и перехода к верхнему. $user
не будет отменено, если var не определен в этой области.
В зависимости от ввода мы можем определить пустые значения с помощью !empty
или сделать больше хирургических тестов (ответ на readline может быть много символов).
$user
можно проверить с помощью !isset
, если еще не спросил .
Существует также встроенный readline_add_history()
для хранения пользовательского ввода в объект, где значения могут быть получены непосредственно по их имени (Nice для четкости кода):
readline_add_history($user);
print_r(readline_list_history());
print_r(readline_user());
Очень полезно создавать настоящие сложные вещи!