PHP Doku:: Parses XML requests and call methods - function.xmlrpc-server-call-method.html

Verlauf / Chronik / History: (8) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzWeb ServicesXML-RPCXML-RPC Funktionenxmlrpc_server_call_method

Ein Service von Reinhard Neidl - Webprogrammierung.

XML-RPC Funktionen

<<xmlrpc_server_add_introspection_data

xmlrpc_server_create>>

xmlrpc_server_call_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_call_methodParses XML requests and call methods

Beschreibung

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

Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und alles Andere, was hier dokumentiert ist, kann sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.

Warnung

Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.


2 BenutzerBeiträge:
- Beiträge aktualisieren...
marco.buratto at tiscali punto it
28.12.2006 17: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.11.2005 14: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);
?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)