我有一个c#控制台应用程序,我使用PHP调用服务器调用
chdir($filePath);
exec($filePath.$fileName);
这很好用,应用程序运行。收集它旨在收集的数据,每个人都很高兴。 目前我计划在服务器或平面文件上存储一次性使用信息,但后来我注意到,当控制台应用程序正在运行并且这样做时,页面挂起等待应用程序停止。这引起了我的兴趣,现在我想知道应用程序是否有办法直接将数据传回页面?
注意:我在Windows 7上运行Apache2
更新
结束使用
$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);
答案 0 :(得分:1)
控制台应用程序应该能够打印(使用Console.WriteLine),PHP可以获取结果......
回到我的PHP时代,我们一直调用脚本(基本上只是控制台应用程序),并将结果吐出页面。
“shell_exec - 通过shell执行命令并返回完整的输出 作为字符串“
http://php.net/manual/en/function.shell-exec.php
[所以,唯一的区别是您应该使用shell_exec
而不是常规exec
]
答案 1 :(得分:1)
如果您“直接”表示您希望应用程序的输出在仍在运行时发送给客户端,您可能会对passthru()感兴趣。
如果您还是C#应用程序的作者,则可以跳过控制台应用程序并以可通过php COM and .Net module访问的方式公开功能。