PHP: Выполнение Приложения Командной Строки, Которое Запрашивает Пользователей
У меня есть приложение командной строки, которое мне нужно выполнить из моего веб-приложения PHP. Допустим, команда следующая:
foo -arg1 -arg2 -arg3
В зависимости от определенных условий приложение командной строки предложит пользователю нажать клавишу ввода (например, "Пожалуйста, нажмите enter, чтобы продолжить").
Из моего PHP-приложения, как мне выполнить командную строку И отправить клавишу ввода в ответ на приглашение?
Я развиваюсь на WAMP. Производственный код - ЛАМПА.
4 answers
Для этого и предназначена программа "да". Он сбрасывает бесконечный поток "y\n" (или что бы вы ни сказали ему с помощью аргументов) в программу. Он существует для этой цели (отвечая "да" на запросы "хотите ли вы продолжить").
shell_exec('yes | foo -arg1 -arg2 -arg3')
Вам действительно нужно будет o написать дескриптор процесса и проанализировать вывод программ и записать соответствующий вывод в ответ.
Проверьте расширение expect, которое может упростить такие вещи.
$value = fgets(STDIN);
Это позволит пользователю ввести значение, к которому вы затем сможете получить доступ через $value.
Вы пробовали echo "\n" > foo -arg1 -arg2 -arg3
?