PHP: Выполнение Приложения Командной Строки, Которое Запрашивает Пользователей


У меня есть приложение командной строки, которое мне нужно выполнить из моего веб-приложения PHP. Допустим, команда следующая:

foo -arg1 -arg2 -arg3

В зависимости от определенных условий приложение командной строки предложит пользователю нажать клавишу ввода (например, "Пожалуйста, нажмите enter, чтобы продолжить").

Из моего PHP-приложения, как мне выполнить командную строку И отправить клавишу ввода в ответ на приглашение?

Я развиваюсь на WAMP. Производственный код - ЛАМПА.

Author: Paul Dixon, 2010-06-29

4 answers

Для этого и предназначена программа "да". Он сбрасывает бесконечный поток "y\n" (или что бы вы ни сказали ему с помощью аргументов) в программу. Он существует для этой цели (отвечая "да" на запросы "хотите ли вы продолжить").

shell_exec('yes | foo -arg1 -arg2 -arg3')
 2
Author: zebediah49, 2010-06-28 22:29:18

Вам действительно нужно будет o написать дескриптор процесса и проанализировать вывод программ и записать соответствующий вывод в ответ.

Проверьте расширение expect, которое может упростить такие вещи.

 1
Author: Paul Dixon, 2010-06-28 21:55:54
$value = fgets(STDIN);

Это позволит пользователю ввести значение, к которому вы затем сможете получить доступ через $value.

 1
Author: Ben Rowe, 2010-06-28 22:50:13

Вы пробовали echo "\n" > foo -arg1 -arg2 -arg3 ?

 -2
Author: Kris, 2010-06-28 21:55:09