консольное приложение c #, взаимодействующее со страницей PHP - PullRequest
1 голос
/ 31 августа 2011

У меня есть консольное приложение c #, которое я вызываю с помощью вызова сервера в PHP

chdir($filePath);
exec($filePath.$fileName);

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

Примечание: я использую Apache2 в Windows 7


Обновление:

Завершено с помощью

$runCommand = "D:\\ScanBoyConsole\\ScanBoy_Console.exe COM1 9600 8 1 0 1"; 
$WshShell = new COM("WScript.Shell");
$output = $WshShell->Exec($runCommand)->StdOut->ReadAll;
json_decode($output);

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Если вы имеете в виду «напрямую», что вы хотите, чтобы выходные данные приложения отправлялись клиенту во время его работы, вас может заинтересовать passthru () .
Если вы также являетесь авторомC # -приложение вы можете пропустить консольное приложение и предоставить доступ к функциональности способом, доступным через php COM и .Net модуль .

1 голос
/ 31 августа 2011

Консольное приложение должно быть в состоянии печатать (используя Console.WriteLine), и PHP может принять результаты этого ...

В мои дни PHP мы все время вызывали скрипты (в основном это не что иное, как консольные приложения), и результаты выкладывались на страницу.

"shell_exec - выполнить команду через оболочку и вернуть полный вывод в виде строки "

http://php.net/manual/en/function.shell-exec.php

[Итак, единственное отличие состоит в том, что вы должны использовать shell_exec вместо обычного exec]

...