здравствуйте, у меня проблема следующего характера: есть клиент(содержит интерфейс) и сервер(выполняет обработку) данные передаются от клиента серверу и обратно через XML (клиент передает данные серверу, сервер выводит данные и кидает их обратно клиенту, который выводит результат)
необходимо, используя XML RPC на php, написать взаимодействие клиента и сервера
при выполнении и клиент и сервер выдают ошибки - ругаются на функции, что они не существуют клиент на xmlrpc_encode_request, а сервер на xmlrpc_server_register_method.
пример кода:
Сервер:
Код | <?php
/* Функция-обработчик получаемых данных. $method_name - имя вызываемого метода, $params - параметры, $user_data - пользовательские данные. */ function local($method_name, $params, $user_data) { /*возвращаем сериализованные входящие данные*/ return serialize($params); }
/*создаем сервер*/ $s = xmlrpc_server_create();
/*регистрируем метод-обработчик*/ xmlrpc_server_register_method($s, 'external', 'local');
/*вызываем обработчик, передаем ему входящие данные, если обработчик возвращает что-то - выводим на экран*/ if ($data = xmlrpc_server_call_method($s, $HTTP_RAW_POST_DATA, null)) echo $data;
/*уничтожаем сервер*/ xmlrpc_server_destroy($s);
?>
|
Клиент:
Код | <?php
/*кодируем данные и имя метода для передачи серверу*/ $request = xmlrpc_encode_request('external', array(1, 2, 3));
/*создаем контекст для передачи данных серверу*/ $context = stream_context_create(array('http' => array( 'method' => "POST", 'header' => "Content-Type: text/xml", 'content' => $request )));
/*передаем запрос серверу и получаем ответ*/ $file = file_get_contents("http://адрес_сайта/скрипт_сервер.php", false, $context);
/*декодируем ответ*/ $response = xmlrpc_decode($file);
/*если ошибка - выводим ее, иначе - выводим ответ сервера*/ if (xmlrpc_is_fault($response)) { trigger_error("xmlrpc: $response[faultString] ($response[faultCode])"); } else { print_r(unserialize($response)); }
?>
|
заранее спасибо! |