2010-09-21 54 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