【问题标题】:c# console application interacting with PHP pagec#控制台应用程序与PHP页面交互
【发布时间】:2011-08-31 13:29:24
【问题描述】:

我有一个 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);

【问题讨论】:

  • 您是否正在寻找一种 C# 控制台应用程序可以与 PHP 解释器通信的方式(没有“挂起”)?如果是,您是否正在寻找某种基于 IPC 的解决方案?
  • 悬吊我不介意。控制台应用程序不需要很长时间,但是我正在为移动平台设计它。所以也许?

标签: c# php windows-7 apache2


【解决方案1】:

如果您的意思是“直接”希望应用程序的输出在客户端仍在运行时发送到客户端,您可能会对passthru() 感兴趣。
如果您也是 C# 应用程序的作者,您可以跳过控制台应用程序并以可通过 php 的COM and .Net module 访问的方式公开功能。

【讨论】:

    【解决方案2】:

    控制台应用程序应该能够打印(使用 Console.WriteLine),PHP 可以获取结果...

    回到我的 PHP 时代,我们一直调用脚本(基本上只是控制台应用程序)并将结果吐出到页面上。

    "shell_exec — 通过 shell 执行命令并返回完整的输出 作为字符串”

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

    [所以,唯一的区别是您应该使用shell_exec 而不是常规的exec]

    【讨论】:

    • 我可以返回php变量吗? Console.WriteLine("$foo = 'bar';");
    • 我在使用命令时遇到问题。当我在 cmd 提示符下运行它时工作。 echo shell_exec("cd D:/ScanBoyConsole && D:/ScanBoyConsole/ScanBoy_Console.exe 'COM1' 9600 8 1 0 1"); 但是当我这样调用它时程序崩溃了。我之前在未设置 CWD 时遇到过这个问题。有什么想法吗?
    猜你喜欢
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 2020-07-01
    • 1970-01-01
    • 2016-04-30
    • 2012-04-08
    相关资源
    最近更新 更多