Запуск программы из командной строки через PHP - Передача команд вместо того, чтобы каждый раз перезапускать программу - PullRequest
0 голосов
/ 03 октября 2010

Я использую локальный сервер на своем ноутбуке для управления программой на C # через PHP. В основном я беру POST, переданный на мой веб-сервер, и использую его в качестве параметров для программы командной строки. Мой код по сути такой:

$parameters = $_POST['parameters'];
system('C://THEFILEPATH/myprogram.exe ' . $parameters);

Проблема в том, что это приводит к тому, что myprogram.exe останавливается и запускается каждый раз, когда я хочу что-то передать ему. Так как хорошая часть моей программы - инициализация, это вызывает немного ненужное отставание. Есть ли способ запустить myprogram.exe через PHP и передать его переменным, поскольку он продолжает работать, вместо того, чтобы каждый раз запускать его заново?

Спасибо!

Ответы [ 2 ]

1 голос
/ 04 октября 2010

взять ввод и записать его в файл. ваша myprogram должна периодически читать файл и удалять все прочитанные данные, чтобы файл работал как очередь. если вы хотите всегда запускать вашу программу и во время работы получать свои входные данные, вам следует рассмотреть возможность реализации компонента для прослушивания специального сетевого порта.

0 голосов
/ 04 октября 2010

http://www.php.net/manual/en/function.proc-open.php Это обеспечивает двунаправленную поддержку (чтение и запись).Я не уверен, насколько проверено это на Windows, хотя.Далее говорится:

Совместимость с Windows: дескрипторы за пределами 2 (stderr) доступны для дочернего процесса как наследуемые дескрипторы, но поскольку архитектура Windows не связывает номера дескрипторов файлов с низкоуровневымидескрипторы, у дочернего процесса (пока) нет средств доступа к этим дескрипторам.Stdin, stdout и stderr работают как положено.

Так что вы должны иметь возможность писать в него, как файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...