2011-03-07 2 views
10

J'ai besoin de ce code PHP converti en C#. Y a-t-il un outil ou un site Web qui rendrait cela possible?Convertisseur php en 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

Cela semble faire partie de quelque chose de plus. De quel aspect avez-vous besoin exactement traduit? La partie de boucle? –

+0

En relation: http: // stackoverflow.com/questions/441161/comment-convertir-code-de-c-a-php – RQDQ

+0

Peut-être pas ce que vous cherchez, mais Facebook HipHop pour PHP convertit PHP en C++. (Oui, je sais que vous demandez C#, mais c'est la chose la plus proche que je puisse penser: D). Ne vous procure pas vraiment de code converti, mais augmente vos performances si c'est ce que vous recherchez. – Sondre

Répondre

31

Je ne connais aucun outil qui peut convertir de PHP en C#. S'il y a une telle chose, je ne lui ferais pas confiance pour faire la conversion correctement. Ce qui laisse vos options:

  • En savoir C#
  • passer à quelqu'un qui peut le convertir.
+2

+1, secondé. Convertir le code source d'une langue à une autre est une tâche complexe, je doute qu'il y ait un outil qui rende cela possible, sans parler de la fiabilité :). – mingos

+3

Au lieu de la conversion, il est possible d'intégrer le code PHP existant dans .NET, par ex. en utilisant Phalanger comme mentionné à http://stackoverflow.com/questions/5221669/php-to-c-sharp-converter/8007020#8007020 Il est utilisé –

+0

@ JakubMíšek et puis l'ingénierie inverse que hah. en fait, la conversion de blocs simples ne doit pas être trop difficile, c'est juste que personne ne la considère digne d'adresse –

16

Peut-être que vous devriez jeter un oeil à Phalanger. Ce n'est pas un convertisseur, mais cela vous permet de compiler du code PHP pour .Net - donc vous devriez être capable d'appeler des méthodes PHP à partir de C#. Il s'agit d'un projet open source et la source est hébergée here.

3

Il n'y a pas de convertisseur, mais vous pouvez jeter un oeil à Haxe. C'est un langage open source multiplateforme qui peut être compilé dans d'autres langages, y compris C#. La syntaxe est similaire à PHP.

Quoi qu'il en soit, pour cette conversion de code manuellement serait la meilleure approche.

-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

Vous pouvez traduire automatiquement un petit sous-ensemble de PHP en C# en utilisant la bibliothèque transpiler pour SWI-Prolog. Ceci est un programme court qui utilise cette bibliothèque:

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

Ceci est la sortie du programme en 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+"!"; 
} 
1

Au lieu de convertir (qui conduirait à un code spaghetti ingérable), rendre le projet PHP un projet .NET régulière (comme F # ou C++/CLI) en utilisant le compilateur PHP nous travaillons:

https://github.com/iolevel/peachpie

de cette façon, à côté d'autres choses, vous Kee p votre code PHP maintenable tandis que vous pouvez l'utiliser de façon transparente à partir de C#.

Quelques ressources: