PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

xmlrpc_server_create> <xmlrpc_server_add_introspection_data
Last updated: Fri, 20 Jun 2008

view this page in

xmlrpc_server_call_method

(PHP 4 >= 4.0.7, PHP 5)

xmlrpc_server_call_method — Analyse une requête XML et appelle les méthodes associées

Description

string xmlrpc_server_call_method ( resource $server , string $xml , mixed $user_data [, array $output_options ] )
Avertissement

Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.

Avertissement

Cette fonction n'est pas documentée et seule la liste des arguments est disponible.



add a note add a note User Contributed Notes
xmlrpc_server_call_method
marco.buratto at tiscali punto it
28-Dec-2006 05:15
xmlrpc_server_call_method() with class methods

<?php
require_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 data
if ($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;
        }
    }
?>
nyvsld at gmail dot com
27-Nov-2005 02:08
<?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);
?>
zionglau at yahoo dot com
21-Jul-2004 07:44

 
show source | credits | sitemap | contact | advertising | mirror sites