.net - 将内存中的数据从 PHP 传递到 .Net 程序

标签 .net php

如何将内存中的数据从 PHP 传递到 .Net 程序?我会用Process调用 php.exe,并传入脚本名称 (*.php) 和参数。

现在的问题是如何将数据从 PHP 传回 .Net?

具体来说,我正在研究 PHP 传递数据的方式,以便 .Net 可以拦截它。我拥有的 .Net 代码与此类似:

Process p = new Process();
StreamWriter sw;
StreamReader sr;
StreamReader err;
ProcessStartInfo psI = new ProcessStartInfo("cmd");
psI.UseShellExecute = false;
psI.RedirectStandardInput = true;
psI.RedirectStandardOutput = true;
psI.RedirectStandardError = true;
psI.CreateNoWindow = true;
p.StartInfo = psI;
p.Start();
sw = p.StandardInput;
sr = p.StandardOutput;
var text1 = sr.ReadToEnd();  // the php output should be able to be read by this statement
sw.Close();

编辑:有些人建议使用 XML,这很好。但是 XML 是一个基于文件的系统;我更喜欢在内存中传递数据交互的方式,只是为了防止意外写入同一个 XML 文件。

最佳答案

您可以将流与 PHP 一起使用到 STDOUT:

<?php
$stdout = fopen('php://stdout', 'w');

然后在 .NET 中捕获输出。我对 .NET 没有太多经验,但这似乎允许您捕获进程的输出:

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput.aspx

关于.net - 将内存中的数据从 PHP 传递到 .Net 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1476206/

相关文章:

php - Laravel - 意外的 ':' 期待 '('

php - 在 PHP 或 MySQL 中对小数进行排序

.net - Eazfusctor.net - 排除文件

c# - 工具包图表旋转标签 X 轴

.net - 在托管(嵌入式)环境中调试 IronPython 脚本

php - 添加密件抄送后,Laravel 邮件会发送两次电子邮件

php - 交响乐团 : Pagination with inner join

c# - 使用 XML 序列化将属性放入不同的 XML 命名空间

c# - 代码隐藏中的 .NET/C# 字符串引用未加载更新值

php - 为什么这个 switch 语句不返回 0 在 0-100 之间?