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; } 

我不知道任何可以从PHP转换为C#的工具。 如果有这样的事情,我不相信它能正确地进行转换。 这样就可以选择:

  • 学习C#
  • 将它传递给可以转换它的人。

也许你应该看看Phalanger 。 它不是转换器,但它允许你为.Net编译PHP代码 – 所以你应该能够从C#调用php方法。 它是一个开源项目,源代码在这里托管。

这可能会有所帮助。 它有一个转换引擎,但事实上它得到了’白皮书’的支持,这让我相信前方仍然会有艰难的场地。

http://www.asp.net/downloads/archived/migration-assistants/php-to-aspnet/

没有转换器,但你可以看看Haxe 。 它是多平台开源语言,可以编译成其他语言,包括C#。 语法类似于PHP。

无论如何,对于这个代码片段手动转换将是最好的方法。

而不是转换(这将导致无法管理的意大利面条代码),使用我们正在处理的PHP编译器使PHP项目成为常规的.NET项目(如F#或C ++ / CLI):

https://github.com/iolevel/peachpie

通过这种方式,除了其他方面,您可以保持PHP代码的可维护性,同时可以从C#无缝地使用它。

一些资源:

您可以使用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+"!"; } 
 $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";}