2 <head><title>xmlrpc</title></head>
4 <h1>Webservice wrappper demo</h1>
6 <h2>Wrap methods exposed by server into php functions</h2>
8 <h3>The code demonstrates usage of the most automagic client usage possible:<br/>
9 1) client that returns php values instead of xmlrpcval objects<br/>
10 2) wrapping of remote methods into php functions
14 include "xmlrpc_wrappers.inc";
16 $c = new xmlrpc_client("/server.php", "phpxmlrpc.sourceforge.net", 80);
17 $c->return_type = 'phpvals'; // let client give us back php values instead of xmlrpcvals
18 $r = &$c->send(new xmlrpcmsg('system.listMethods'));
19 if ($r->faultCode()) {
20 echo "<p>Server methods list could not be retrieved: error '" . htmlspecialchars($r->faultString()) . "'</p>\n";
23 echo "<p>Server methods list retrieved, now wrapping it up...</p>\n<ul>\n";
24 foreach ($r->value() as $methodname) {
25 // $r->value is an array of strings
27 // do not wrap remote server system methods
28 if (strpos($methodname, 'system.') !== 0) {
29 $funcname = wrap_xmlrpc_method($c, $methodname);
31 echo "<li>Remote server method " . htmlspecialchars($methodname) . " wrapped into php function " . $funcname . "</li>\n";
33 echo "<li>Remote server method " . htmlspecialchars($methodname) . " could not be wrapped!</li>\n";
35 if ($methodname == 'examples.getStateName') {
36 $testcase = $funcname;
42 echo "Now testing function $testcase: remote method to convert U.S. state number into state name";
44 $statename = $testcase($statenum, 2);
45 echo "State number $statenum is " . htmlspecialchars($statename);