2011-03-07 72 views
10

我需要將此PHP代碼轉換爲C#。有沒有一種工具或網站可以使這成爲可能?php轉換爲C#轉換器

public function call($method, array $params) { 
    // Add the format parameter, only 'json' is supported at the moment 
    if (!array_key_exists('format', $params)) { 
     $params['format'] = 'json'; 
    } 

    $url = "{$this->_url}/{$method}"; 
    $ch = $this->_getCurlHandle($url); 

    if (!$ch) { 
     throw new Fuze_Client_Exception("Unable to create a cURL handle"); 
    } 

    // Set the request parameters 
    $queryString = http_build_query($params); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $queryString); 

    // Fire! 
    $result = $this->_executeCurl($ch); 

    // All API response payloads should be valid json with 'code' and 
    // 'message' members 
    $json = json_decode($result); 
    if (!($json instanceof stdClass) 
      || !isset($json->code) 
      || !isset($json->message)) { 

     throw new Fuze_Client_ServerException(
      "Invalid JSON payload received", $result, $info['http_code']); 
    } 

    if ($json->code >= 500 && $json->code < 600) { 
     throw new Fuze_Client_FaultException($json); 
    } 

    return $json; 
} 
+0

這似乎是一個更大的東西的一部分。你需要翻譯什麼?捲曲部分? – 2011-03-07 15:45:00

+0

相關:http:// stackoverflow。com/questions/441161/how-to-convert-code-from-c-to-php – RQDQ 2011-03-07 15:45:30

+0

可能不是你要找的,但Facebook的HipHop for PHP將PHP轉換爲C++。 (是的,我知道你在問C#,但這是我能想到的最接近的東西:D)。如果這就是你所追求的目標,它並不能真正幫你轉換代碼,但會提高你的性能。 – Sondre 2011-03-07 15:55:33

回答

31

我不知道任何可以從PHP轉換到C#的工具。如果有這樣的事情,我不會相信它正確地進行轉換。所以離開你的選項:

  • 學習C#
  • 它傳給別人誰可以把它轉換。
+2

+1,借調。將源代碼從一種語言轉換爲另一種語言是一項複雜的任務,我懷疑是否有一種工具可以使其成爲可能,更不用說可靠性了。 – mingos 2011-03-07 15:50:59

+3

除了轉換之外,還可以將現有的PHP代碼集成到.NET中,例如。使用Phalanger提到在http://stackoverflow.com/questions/5221669/php-to-c-sharp-converter/8007020#8007020它正在使用 – 2012-03-28 11:53:45

+0

@JakubMíšek,然後逆向工程,哈哈。實際上,轉換簡單塊不會太難,只是沒有人認爲值得去解決 – 2015-09-11 12:19:13

16

也許你應該看一看Phalanger。它不是一個轉換器,但它可以讓你爲.Net編譯PHP代碼 - 所以你應該可以從C#調用php方法。 這是一個開源項目,源代碼爲here

3

沒有轉換器,但你可以看看Haxe。它是多平臺的開源語言,可以編譯成其他語言,包括C#。該語法與PHP類似。

無論如何,對於此代碼段手動轉換將是最好的辦法。

-1
$sql = "SELECT num.name,num.on from table WHERE on = '0'"; 

$query = mysql_query($sql); 

$arr =mysql_fetch_array($query); 

$s = array($arr['name']); 

if(in_array('1',$s)){echo "yes";}else{echo "no";} 
0

您可以使用SWI-Prolog的transpiler庫自動將PHP的一小部分轉換爲C#。這是一個使用這個庫中的短節目:

:- use_module(library(transpiler)). 
:- set_prolog_flag(double_quotes,chars). 
:- initialization(main). 

main :- 
    Input = "function add($a,$b){return $a.$b;}function squared($a){return $a*$a;}function add_exclamation_point($parameter){return $parameter.\"!\";}", 
    translate(Input,'php','c#',X), 
    atom_chars(Y,X), 
    writeln(Y). 

這檔節目在C#輸出:

public static string add(string a,string b){ 
     return a+b; 
} 
public static int squared(int a){ 
     return a*a; 
} 
public static string add_exclamation_point(string parameter){ 
     return parameter+"!"; 
}