php到C#转换器

时间:2011-03-07 15:43:18

标签: c# php

我需要将这个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;
}

7 个答案:

答案 0 :(得分:37)

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

  • 了解C#
  • 将其传递给可以转换它的人。

答案 1 :(得分:17)

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

答案 2 :(得分:4)

这可能会有所帮助。 它有一个转换引擎,但事实上它是由'白皮书'支持的 让我相信前方仍会有艰难的进展。

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

答案 3 :(得分:4)

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

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

答案 4 :(得分:4)

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

https://github.com/iolevel/peachpie

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

一些资源:

答案 5 :(得分: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+"!";
}

答案 6 :(得分:-3)

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