Agesort demo
Send an array of 'name' => 'age' pairs to the server that will send it back sorted.
The source code demonstrates basic lib usage, including handling of xmlrpc arrays and structs
24, "Edd" => 45, "Joe" => 37, "Fred" => 27);
reset($inAr);
print "This is the input data:
";
while (list($key, $val)=each($inAr)) {
print $key . ", " . $val . "\n";
}
print "
";
// create parameters from the input array: an xmlrpc array of xmlrpc structs
$p=array();
foreach($inAr as $key => $val) {
$p[]=new xmlrpcval(array("name" => new xmlrpcval($key),
"age" => new xmlrpcval($val, "int")), "struct");
}
$v=new xmlrpcval($p, "array");
print "Encoded into xmlrpc format it looks like this: \n" . htmlentities($v->serialize()). "
\n";
// create client and message objects
$f=new xmlrpcmsg('examples.sortByAge', array($v));
$c=new xmlrpc_client("/server.php", "phpxmlrpc.sourceforge.net", 80);
// set maximum debug level, to have the complete communication printed to screen
$c->setDebug(2);
// send request
print "Now sending request (detailed debug info follows)";
$r=&$c->send($f);
// check response for errors, and take appropriate action
if (!$r->faultCode()) {
print "The server gave me these results:";
$v=$r->value();
$max=$v->arraysize();
for($i=0; $i<$max; $i++) {
$rec=$v->arraymem($i);
$n=$rec->structmem("name");
$a=$rec->structmem("age");
print htmlspecialchars($n->scalarval()) . ", " . htmlspecialchars($a->scalarval()) . "\n";
}
print "
For nerds: I got this value back
" .
htmlentities($r->serialize()). "
\n";
} else {
print "An error occurred:";
print "Code: " . htmlspecialchars($r->faultCode()) .
"\nReason: '" . htmlspecialchars($r->faultString()).'\'
';
}
?>