2010-09-21 55 views
0

我浏览了互联网,但还没有找到我的答案......因为我用尽了想法,我很感谢在这个问题上的一些帮助。 所以这里是: 我有一些PHP代码,需要一个文件的路径,并返回我需要的一堆信息。 我有源代码(它是开源的),我知道我的C#。 我的问题是我想能够从C#应用程序中使用此PHP代码,离线模拟PHP代码。仿真PHP页面以获取C#中的响应#

任何想法?

谢谢。

+2

为什么它必须在C#中? – siride 2010-09-21 04:36:47

+0

因为我很放心用C#来做应用程序,但是我需要php文件中的算法。 – FatalBaboon 2010-09-22 00:55:53

+0

从您的评论下面我看到你真的在寻找有关如何解析星际争霸2重播文件的信息,而不仅仅是一般文件信息。您应该将此添加到您的问题帖子中。 – 2010-09-22 03:57:33

回答

0

这听起来像要么希望

  1. 翻译的PHP代码到C#
  2. 呼叫从.NET
  3. PHP代码???

我不认为仿真是你正在寻找的术语,确切地说。

如果您可以链接到PHP代码(如果它是OSS,是否有一个包含更多信息的网站?)或粘贴到此处,我们可能会让您知道处理此问题的最佳方法。

+0

我想调用.NET C#的PHP代码# – FatalBaboon 2010-09-21 04:25:04

+0

http:// kuukkeli。 ath.cx/ooaemkee/SC2Replay/upload_file.php – FatalBaboon 2010-09-21 04:26:42

+0

我试图模仿的PHP页面是以上的一个 – FatalBaboon 2010-09-21 04:26:58

1

如果您确实需要,您可以始终通过产生一个进程来从C#启动PHP解释器。我将把细节留给MSDN。不过,更好的做法是将PHP手动转换为C#。

+0

手工翻译PHP到C#是我最后的手段,我想要求一个更简单的方法来处理这个问题,然后我会这样做...... – FatalBaboon 2010-09-21 04:35:52

1

您可以在本地机器上设置PHP服务器,并使用用c#创建的HTTP请求(例如使用WebRequest对象)调用该文件。这符合脱机工作的要求,并且由于您拥有PHP代码,因此您可以进行较小的修改以适应需要传递给它的任何参数。

但是除非这是一个在受控环境中的孤立情况,我不会建议它。

如果这是为了分发给用户机器,它将是a)不切实际的部署b)维护噩梦。如果你正在服务器上运行并且用c#重写PHP不是一个选项,它应该完成工作。

+0

是的,它是分发,在最后阶段= X – FatalBaboon 2010-09-21 04:39:13

+0

有可能在.Net 4.0中使用DLR(动态语言运行时)的一些可能性。这允许像c#这样的更强类型的语言与PHP等解释型语言进行交互。我找不到具体的例子,但这可能是您开始的好地方。 – 2010-09-21 04:47:20

0

如果您不想将PHP代码翻译成C#,那么您必须调用PHP解释器。

首先,查看您将使用的PHP代码的许可证。当我在前面查看代码时,我注意到除了一个PHP文件外,其他所有文件都拥有GNU GPL许可证。 GNU GPL应该可以满足你的需求,但我建议你查看GNU GPL,如果你还没有这样做的话。在继续之前,您还应该考虑应该将什么许可证应用于最后一个文件。

二,重写入口文件。有问题的文件是upload_file.php。该文件将其他文件加载为包含,解析SC2重放文件,并生成供Web浏览器使用的输出。您只需重写该文件即可将其输出的简化版输出到控制台。您可能会从命令行参数收到重放文件的名称。其他标记为GNU GPL的文件可以直接复制到您的项目中。我也应该在这里说可能已经有一个控制台版本。花点时间寻找一个。

三,编写一个C#应用程序。调用PHP解释器告诉它解释什么文件以及解析的重播文件的名称。您需要将您的PHP实例的控制台输出重定向到您的C#代码才能读取输出。

四,读取输出。

第五,解析您的C#应用​​程序中使用的输出。

+0

谢谢你的回答 1)我知道许可证,我很好。 2)我对重写的文件有同样的结论,但我完全不知道PHP = X 我甚至都不知道PHP可以写入控制台。 在选择这个PHP开源项目之前,我花了很长时间看看,作为我的最佳选择。 据我了解,我需要重写第63行,其中包含JavaScript(不知道这部分是什么tbh),和一些HTML生成一个窗体。在PHP中唯一的一部分是说不通过4Mo上传文件(如果我正确的话)。 – FatalBaboon 2010-09-23 04:41:48

+0

最后但并非最不重要的一点,你谈论的是一个“PHP解释器”,你的意思是Phalanger? (据我所知,他们使用/制作phpc)。 3/4/5部分完全没有问题。 – FatalBaboon 2010-09-23 04:42:44

+0

通过PHP解释器我的意思是官方的PHP-CLI。 PHP-CLI中的echo语句写入控制台输出。我听说有PHP编译器可用,但没有看过它们。我不确定在这种情况下如何使用Phalanger会改变你必须做的事情。 – 2010-09-23 05:25:37

0

旧的线程,但认为它可以使用一个答案。

您可以使用codeplex Phalanger。 http://phalanger.codeplex.com/它允许你把现有的php文件编译成.net

+0

在此线程之后,我尝试使用Phalanger很长一段时间,结果并不令人满意。所以我去重写代码。 – FatalBaboon 2010-11-21 17:51:38