Преобразование php в С#

Мне нужен этот код PHP, преобразованный в С#. Есть ли инструмент или веб-сайт, который сделает это возможным?

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

Ответ 1

Я не знаю ни одного инструмента, который может конвертировать из PHP в С#. Если есть такая вещь, я бы не стал доверять ей правильно. Таким образом, ваши варианты:

  • Узнать С#
  • Передайте его кому-то, кто может его преобразовать.

Ответ 2

Возможно, вам стоит взглянуть на Phalanger. Это не конвертер, но он позволяет вам скомпилировать PHP-код для .Net - поэтому вы должны иметь возможность вызывать php-методы из С#. Это проект с открытым исходным кодом, и источник размещен здесь.

Ответ 3

Это может быть полезно. У этого есть механизм преобразования, но факт, что он поддерживается с "документами" заставляет меня поверить, что впереди еще будут твердые ярды.

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

Ответ 4

Нет конвертера, но вы можете взглянуть на Haxe. Это многоплатформенный язык с открытым исходным кодом, который может быть скомпилирован на другие языки, включая С#. Синтаксис похож на PHP.

Во всяком случае, для этого наилучшего подхода будет использовать конвертирование фрагмента кода вручную.

Ответ 5

Вместо преобразования (что приведет к неуправляемому коду спагетти) сделайте проект PHP регулярным .NET-проектом (например, F # или С++/CLI) с использованием компилятора PHP, над которым мы работаем:

https://github.com/iolevel/peachpie

Таким образом, помимо других вещей, вы сохраняете свой PHP-код поддерживаемым, в то время как вы можете легко использовать его с С#.

Некоторые ресурсы:

Ответ 6

Вы можете автоматически перевести небольшое подмножество PHP в С#, используя библиотеку transpiler для SWI-Prolog. Это короткая программа, которая использует эту библиотеку:

:- 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).

Это вывод программы в С#:

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+"!";
}

Ответ 8

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