PHP Conference Fukuoka 2025

xmlrpc_server_call_method

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

xmlrpc_server_call_methodAnaliza los requerimientos del XML y las llamadas de los métodos

Descripción

xmlrpc_server_call_method(
    resource $server,
    string $xml,
    mixed $user_data,
    array $output_options = ?
): string
Advertencia

Esta función es EXPERIMENTAL. El comportamiento de esta función, su nombre, y toda la documentación alrededor de esta función puede cambiar sin previo aviso en una próxima versión de PHP. Esta función debe ser utilizada bajo su propio riesgo.

Advertencia

Esta función está actualmente no documentada; solo la lista de sus argumentos está disponible.

add a note

User Contributed Notes 2 notes

up
3
marco.buratto at tiscali punto it
18 years ago
xmlrpc_server_call_method() with class methods<?phprequire_once ('Connections/adodb_mysql_connection.php');// Instantiating my own class$my_report = new external_report($db_connection);// Setting up the XML-RPC "server"$xmlrpc_server_handler = xmlrpc_server_create();xmlrpc_server_register_method($xmlrpc_server_handler, "external_method", array(&$my_report, "export"));// Creating XML return dataif ($response = xmlrpc_server_call_method($xmlrpc_server_handler, $HTTP_RAW_POST_DATA, null))    {    header('Content-Type: text/xml');    echo $response;    }// **************** class definition ****************class external_report    {    protected $db_connection;    public function __construct($db_connection_pointer)        {        if (method_exists($db_connection_pointer, "Execute")) $this->db_connection = $db_connection_pointer;        else die("...");        }    public function export($method_name, $params_array)        {        $id_dir = (int)$params_array[0];        $id_usr = (int)$params_array[1]; // not used, just an example        // We have to add arguments' validating code here and NOT inside the constructor (as usual)        // because arguments are passed directly by xmlrpc_server_call_method (?!!)                $myexport = array();        $dirs_query = "SELECT documento_id FROM tabella_cartelle WHERE cartella_id = ".$id_dir;        $dirs_result = $this->db_connection->Execute($dirs_query) or die("...");        $index = 0;        while(!$dirs_result->EOF)            {            $docs_query = "SELECT codice, titolo FROM tabella_documenti WHERE id_documento = ".$dirs_result->Fields('documento_id');            $docs_result = $this->db_connection->Execute($docs_query) or die("...");            $myexport[$index]['codice'] = $docs_result->Fields('codice');            $myexport[$index]['titolo'] = $docs_result->Fields('titolo');            $index++;            $dirs_result->MoveNext();            }        return $myexport;        }    }?>
up
-1
nyvsld at gmail dot com
19 years ago
<?php/* method implementation */function impl($method_name,$params,$user_data){  var_dump(func_get_args('impl'));  return array_sum($params);}/* create server */$s=xmlrpc_server_create();xmlrpc_server_register_method($s,'add','impl');/* calling server method */$req=xmlrpc_encode_request('add',array(1,2,3));$resp=xmlrpc_server_call_method($s,$req,array(3,4));/* process result */$decoded=xmlrpc_decode($resp);if(xmlrpc_is_fault($decoded)){    echo 'fault!';}var_dump($decoded);?>
To Top