Ответ 1
Я не знаю ни одного инструмента, который может конвертировать из 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;
}
Я не знаю ни одного инструмента, который может конвертировать из PHP в С#. Если есть такая вещь, я бы не стал доверять ей правильно. Таким образом, ваши варианты:
Возможно, вам стоит взглянуть на Phalanger. Это не конвертер, но он позволяет вам скомпилировать PHP-код для .Net - поэтому вы должны иметь возможность вызывать php-методы из С#. Это проект с открытым исходным кодом, и источник размещен здесь.
Это может быть полезно. У этого есть механизм преобразования, но факт, что он поддерживается с "документами" заставляет меня поверить, что впереди еще будут твердые ярды.
http://www.asp.net/downloads/archived/migration-assistants/php-to-aspnet/
Нет конвертера, но вы можете взглянуть на Haxe. Это многоплатформенный язык с открытым исходным кодом, который может быть скомпилирован на другие языки, включая С#. Синтаксис похож на PHP.
Во всяком случае, для этого наилучшего подхода будет использовать конвертирование фрагмента кода вручную.
Вместо преобразования (что приведет к неуправляемому коду спагетти) сделайте проект PHP регулярным .NET-проектом (например, F # или С++/CLI) с использованием компилятора PHP, над которым мы работаем:
https://github.com/iolevel/peachpie
Таким образом, помимо других вещей, вы сохраняете свой PHP-код поддерживаемым, в то время как вы можете легко использовать его с С#.
Некоторые ресурсы:
Вы можете автоматически перевести небольшое подмножество 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+"!";
}
Может быть полезно, и я знаю его не С#
$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";}