2011-03-07 30 views
10

Necesito este código PHP convertido a C#. ¿Hay alguna herramienta o sitio web que lo haga posible?php to C# converter

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

Esto parece ser parte de algo más grande. ¿Qué aspecto necesita traducir exactamente? La parte curl? –

+0

Relacionados: http: // stackoverflow.com/questions/441161/how-to-convert-code-from-c-to-php – RQDQ

+0

Puede que no sea lo que estás buscando, pero Facebooks HipHop para PHP convierte PHP a C++. (Sí, sé que estás pidiendo C#, pero esto es lo más cercano que se me ocurre: D). Realmente no obtiene ningún código convertido, pero aumenta su rendimiento si eso es lo que está buscando. – Sondre

Respuesta

31

No conozco ninguna herramienta que pueda convertir de PHP a C#. Si existe tal cosa, no confiaría en que haga la conversión correctamente. Por lo que deja a sus opciones:

  • aprender C#
  • pasarlo a alguien que puede convertirlo.
+2

+1, secundado. Convertir el código fuente de un idioma a otro es una tarea compleja, dudo que haya una herramienta que lo haga posible, sin mencionar la confiabilidad :). – mingos

+3

En lugar de la conversión, es posible integrar el código PHP existente en .NET, p. utilizando Phalanger como se menciona en http://stackoverflow.com/questions/5221669/php-to-c-sharp-converter/8007020#8007020 Se está utilizando –

+0

@ JakubMíšek y luego realiza ingeniería inversa que hah. de hecho, la conversión de bloques simples no debe ser demasiado difícil, simplemente nadie considera que vale la pena abordar –

16

Tal vez debería echar un vistazo a Phalanger. No es un convertidor, pero le permite compilar código PHP para .Net, por lo que debería poder llamar a los métodos php desde C#. Es un proyecto de código abierto y la fuente está alojada en here.

3

No hay ningún convertidor, pero puede echar un vistazo a Haxe. Es un lenguaje de código abierto multiplataforma que se puede compilar en otros idiomas, incluido C#. La sintaxis es similar a PHP.

De todos modos, para esta conversión de fragmento de código manualmente sería el mejor enfoque.

-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

Usted puede traducir automáticamente un subconjunto pequeño de PHP en C# usando la biblioteca transpiler de SWI-Prolog. Este es un programa corto que utiliza esta biblioteca:

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

Ésta es la salida del programa 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

En lugar de convertir (lo que llevaría a un código espagueti inmanejable), que el proyecto de PHP un proyecto .NET regulares (como C# o C++/CLI) usando el compilador de PHP que estamos trabajando:

https://github.com/iolevel/peachpie

de esta manera, al lado de otras cosas, que Kee p su código PHP puede mantenerse mientras puede usarlo sin problemas desde C#.

Algunos recursos: